{"id":3749,"name":"selenium","ecosystem":"pip","repository_url":"https://github.com/SeleniumHQ/selenium","issues_count":759,"created_at":"2025-06-06T16:30:14.307Z","updated_at":"2025-06-06T16:30:14.307Z","purl":"pkg:pypi/selenium","metadata":{"id":2914888,"name":"selenium","ecosystem":"pypi","description":"Official Python bindings for Selenium WebDriver","homepage":"https://www.selenium.dev","licenses":"Apache 2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/SeleniumHQ/selenium","keywords_array":[],"namespace":null,"versions_count":216,"first_release_published_at":"2008-04-25T16:22:32.000Z","latest_release_published_at":"2025-05-23T17:45:19.000Z","latest_release_number":"4.33.0","last_synced_at":"2025-06-06T01:39:11.267Z","created_at":"2022-04-10T12:34:26.614Z","updated_at":"2025-06-06T01:39:11.268Z","registry_url":"https://pypi.org/project/selenium/","install_command":"pip install selenium --index-url https://pypi.org/simple","documentation_url":"https://selenium.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Operating System :: MacOS :: MacOS X","Operating System :: Microsoft :: Windows","Operating System :: POSIX","Programming Language :: Python","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","Topic :: Software Development :: Testing"],"normalized_name":"selenium"},"repo_metadata":{"uuid":"7613257","full_name":"SeleniumHQ/selenium","owner":"SeleniumHQ","description":"A browser automation framework and ecosystem.","archived":false,"fork":false,"pushed_at":"2024-04-14T01:48:50.000Z","size":2176203,"stargazers_count":29205,"open_issues_count":163,"forks_count":7922,"subscribers_count":1294,"default_branch":"trunk","last_synced_at":"2024-04-14T04:18:45.530Z","etag":null,"topics":["dotnet","java","javascript","python","ruby","selenium","webdriver"],"latest_commit_sha":null,"homepage":"https://selenium.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SeleniumHQ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null},"funding":{"open_collective":"selenium"}},"created_at":"2013-01-14T21:40:56.000Z","updated_at":"2024-04-15T09:45:57.055Z","dependencies_parsed_at":"2023-09-23T14:53:10.930Z","dependency_job_id":"a9a47158-75c8-45ec-96e1-368dde8562ab","html_url":"https://github.com/SeleniumHQ/selenium","commit_stats":{"total_commits":31389,"total_committers":852,"mean_commits":36.84154929577465,"dds":0.8312466150562299,"last_synced_commit":"a0210e3a7ce59c5d96e573493bbde865a1e30ebc"},"previous_names":[],"tags_count":220,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeleniumHQ","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":198592821,"owners_count":13487176,"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":"SeleniumHQ","name":"Selenium","uuid":"983927","kind":"organization","description":"Selenium is an umbrella project for a range of tools and libraries that enable and support the automation of web browsers.","email":null,"website":"https://selenium.dev/","location":null,"twitter":"SeleniumHQ","company":null,"icon_url":"https://avatars.githubusercontent.com/u/983927?v=4","repositories_count":20,"last_synced_at":"2024-05-20T14:12:54.225Z","metadata":{"has_sponsors_listing":true,"funding":{"open_collective":"selenium"}},"html_url":"https://github.com/SeleniumHQ","funding_links":["https://opencollective.com/selenium"],"total_stars":41532,"followers":1575,"following":0,"created_at":"2022-11-02T16:17:26.681Z","updated_at":"2024-05-20T14:12:54.548Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeleniumHQ","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeleniumHQ/repositories"},"tags":[{"name":"selenium-4.19.1-java","sha":"abe0ee07dca3afec9fa2418eb9b093b7c9da90ce","kind":"commit","published_at":"2024-03-29T07:06:02.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.19.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.19.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.19.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.19.1-java/manifests"},{"name":"selenium-4.19.0","sha":"5f9cec8963b33a7708619d666a5ce0b2f6542c7d","kind":"commit","published_at":"2024-03-27T14:54:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.19.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.19.0/manifests"},{"name":"selenium-4.18.1","sha":"b1d3319b48304bca40a8a35cdd95cb05d8464497","kind":"commit","published_at":"2024-02-19T23:50:39.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.18.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.18.1/manifests"},{"name":"selenium-4.18.0","sha":"b6bf9de7cc2a492a8d1d26e418005996075c698f","kind":"commit","published_at":"2024-02-19T12:17:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.18.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.18.0/manifests"},{"name":"selenium-4.17.2-python","sha":"d9ff42059eb233877ec09fc808d1b81453186ad9","kind":"commit","published_at":"2024-01-23T14:50:15.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.17.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.17.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.2-python/manifests"},{"name":"selenium-4.17.1-python","sha":"55082bab97cb50797bc34936c0eb9cac68137f19","kind":"commit","published_at":"2024-01-23T11:58:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.17.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.17.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.1-python/manifests"},{"name":"selenium-4.17.0","sha":"e52b1be0574650813bf0985a7ddaa27500839ab6","kind":"commit","published_at":"2024-01-23T04:03:30.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.17.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.17.0/manifests"},{"name":"selenium-4.16.2-dotnet","sha":"03c23183464f5cdfe1e7c270a97cf59925c91104","kind":"commit","published_at":"2023-12-08T22:41:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.16.2-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.16.2-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.2-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.2-dotnet/manifests"},{"name":"selenium-4.16.1-java","sha":"9b4c83354e69bea04078ceb3a37d69ebf38f3ad5","kind":"commit","published_at":"2023-12-07T03:16:56.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.16.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.16.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.1-java/manifests"},{"name":"selenium-4.16.1-dotnet","sha":"f6bdb7faa5c1c380e31e3d8697ebe2b93eec610e","kind":"commit","published_at":"2023-12-06T23:05:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.16.1-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.16.1-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.1-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.1-dotnet/manifests"},{"name":"selenium-4.16.0","sha":"15400459ddea077b868f696980367ee7ca0d91bd","kind":"commit","published_at":"2023-12-06T07:25:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.16.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.16.0/manifests"},{"name":"nightly","sha":"0c86525184355bddc44b6193ae7236f11a7fb129","kind":"commit","published_at":"2023-11-06T20:47:03.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/nightly","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/nightly","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/nightly","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/nightly/manifests"},{"name":"selenium-4.15.2-python","sha":"7247f8488253437c974ccca5d72665caf2cd6ce1","kind":"commit","published_at":"2023-11-03T21:38:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.15.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.15.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.2-python/manifests"},{"name":"selenium-4.15.1-python","sha":"385f96fe7ecc248662444754241a319d9cdb7bbe","kind":"commit","published_at":"2023-11-02T15:58:06.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.15.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.15.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.1-python/manifests"},{"name":"selenium-4.15.0","sha":"1d14b5521bae241b099f6b0e008fcc9866e842ab","kind":"commit","published_at":"2023-11-01T13:32:51.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.15.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.15.0/manifests"},{"name":"selenium-4.14.1-dotnet","sha":"8cd97570866c053b40cc0c3ce286e26d0eafa8d8","kind":"commit","published_at":"2023-10-15T13:56:14.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.14.1-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.14.1-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.1-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.1-dotnet/manifests"},{"name":"selenium-4.14.1-java","sha":"03f8ede37060d897a220c7459ef5954100ae72d6","kind":"commit","published_at":"2023-10-12T14:10:14.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.14.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.14.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.1-java/manifests"},{"name":"selenium-4.14.0","sha":"e5a96349cea553359d2ad38d0e85c2b1f9928265","kind":"commit","published_at":"2023-10-10T02:53:25.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.14.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.14.0/manifests"},{"name":"selenium-4.13.1-dotnet","sha":"6c9a417185628a8fc89562ab75b4d30f533526ea","kind":"commit","published_at":"2023-09-26T03:59:25.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.13.1-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.13.1-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.1-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.1-dotnet/manifests"},{"name":"selenium-4.13.1-ruby","sha":"a8e9c4d23c9bd5ec90f0f7752208a2c9d5ec5a2d","kind":"commit","published_at":"2023-09-26T02:27:52.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.13.1-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.13.1-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.1-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.1-ruby/manifests"},{"name":"selenium-4.13.0","sha":"66b3a2ade201458b21fa71f92f137417b81faade","kind":"commit","published_at":"2023-09-25T19:06:37.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.13.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.13.0/manifests"},{"name":"selenium-4.12.4-dotnet","sha":"707dc0c560272de02893ca7df5ed36111329372d","kind":"commit","published_at":"2023-09-05T09:09:25.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.4-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.4-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.4-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.4-dotnet/manifests"},{"name":"selenium-4.12.1-java","sha":"8e34639b11a7d0f513a202736da387357bfd30a0","kind":"commit","published_at":"2023-09-04T19:37:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.1-java/manifests"},{"name":"selenium-4.12.3-dotnet","sha":"dfa68e5b001d4b0c53c199d85af758a679b18a83","kind":"commit","published_at":"2023-09-04T18:50:29.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.3-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.3-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.3-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.3-dotnet/manifests"},{"name":"selenium-4.12.2-dotnet","sha":"ff9590375ce20a1d412bddb1ba6603f68e5badb2","kind":"commit","published_at":"2023-09-01T03:21:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.2-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.2-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.2-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.2-dotnet/manifests"},{"name":"selenium-4.12.1-dotnet","sha":"799b84c2b11c0a59dff603ffde95ed60b09f4ee6","kind":"commit","published_at":"2023-08-31T21:02:59.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.1-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.1-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.1-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.1-dotnet/manifests"},{"name":"selenium-4.12.0","sha":"249f2a7d1bbe1aa972006f15088e7b7db000df94","kind":"commit","published_at":"2023-08-31T16:02:13.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.12.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.12.0/manifests"},{"name":"selenium-4.11.1-javascript","sha":"00b6089b93a81e32e1dc754bc2753e9fce9d821c","kind":"commit","published_at":"2023-08-01T04:41:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.11.1-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.11.1-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.1-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.1-javascript/manifests"},{"name":"selenium-4.11.2-python","sha":"3718b8c89bc2022353435c89d23520e9b48b4441","kind":"commit","published_at":"2023-08-01T04:06:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.11.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.11.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.2-python/manifests"},{"name":"selenium-4.11.1-python","sha":"32abe1640fb012c8b259a7a0c45779367c9901c1","kind":"commit","published_at":"2023-08-01T02:53:54.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.11.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.11.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.1-python/manifests"},{"name":"selenium-4.11.0","sha":"040bc5406b3535e4087638b4a20b6d0544224639","kind":"commit","published_at":"2023-07-31T18:57:23.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.11.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.11.0/manifests"},{"name":"selenium-4.10.0","sha":"c14d9678990942b93cb421c5567d0da7fb29c7bd","kind":"commit","published_at":"2023-06-07T15:19:16.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.10.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.10.0/manifests"},{"name":"selenium-4.9.2-javascript","sha":"8e0c968e3866151d3797a73aaae9ead4c421d69e","kind":"commit","published_at":"2023-05-11T08:07:53.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.9.2-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.9.2-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.2-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.2-javascript/manifests"},{"name":"selenium-4.9.1","sha":"bc7e0c7341fdde78cdd80ce572002a7866fd1769","kind":"commit","published_at":"2023-05-08T11:12:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.9.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.1/manifests"},{"name":"selenium-4.9.0","sha":"d7057100a684113afdab046279c8d820eff43c50","kind":"commit","published_at":"2023-04-20T23:41:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.9.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.9.0/manifests"},{"name":"selenium-4.8.6-ruby","sha":"11502c8b787ab97d47145727f4a18d770ff3a8d2","kind":"commit","published_at":"2023-03-29T14:49:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.6-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.6-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.6-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.6-ruby/manifests"},{"name":"selenium-4.8.5-ruby","sha":"8bd2c5ec7620810a821bd38d34aaabb8df28978c","kind":"commit","published_at":"2023-03-28T20:56:34.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.5-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.5-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.5-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.5-ruby/manifests"},{"name":"selenium-4.8.4-ruby","sha":"0e3ae8668e7c5d96b80db97c8b117d08468203b8","kind":"commit","published_at":"2023-03-28T18:49:01.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.4-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.4-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.4-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.4-ruby/manifests"},{"name":"selenium-4.8.3-java","sha":"e5e76298c38f89679ce57c484579100459032e09","kind":"commit","published_at":"2023-03-27T00:06:13.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.3-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.3-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-java/manifests"},{"name":"selenium-4.8.3-ruby","sha":"3ced61d7c680b5b9df70dbc4db748ef93f34f6c0","kind":"commit","published_at":"2023-03-27T00:04:46.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.3-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.3-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-ruby/manifests"},{"name":"selenium-4.8.2-javascript","sha":"1069632233263f18e56fc332ba6838c137f128b1","kind":"commit","published_at":"2023-03-24T18:12:02.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.2-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.2-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-javascript/manifests"},{"name":"selenium-4.8.3-python","sha":"578449ca42fac291f6e68052a2d05c8ce46e3d1a","kind":"commit","published_at":"2023-03-24T18:05:50.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.3-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.3-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.3-python/manifests"},{"name":"selenium-4.8.2-ruby","sha":"b75b0945ddce171b8450792656fea82915b8e18e","kind":"commit","published_at":"2023-03-24T15:22:15.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.2-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.2-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-ruby/manifests"},{"name":"selenium-4.8.2-dotnet","sha":"47f7fb33efd857a4b4a533f979db7f4b2247aec6","kind":"commit","published_at":"2023-03-24T14:50:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.2-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.2-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-dotnet/manifests"},{"name":"selenium-4.8.2-java","sha":"826dbfc7306da3e0beac7e4493cbbabc5fd1d2af","kind":"commit","published_at":"2023-03-24T14:23:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.2-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.2-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-java/manifests"},{"name":"selenium-4.8.2-python","sha":"728db91420671a0a3e39f5a103cad5fa477ea9b6","kind":"commit","published_at":"2023-02-17T23:17:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.2-python/manifests"},{"name":"selenium-4.8.1","sha":"8ebccac989e4feb7c9e940a610b5cc5e81254d34","kind":"commit","published_at":"2023-02-17T17:03:52.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.1/manifests"},{"name":"selenium-4.8.0","sha":"267030adeabce01e662cc69342b76f1811c35ee7","kind":"commit","published_at":"2023-01-23T12:19:25.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.8.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.8.0/manifests"},{"name":"selenium-4.7.2-java","sha":"c7488c6a6657acae699d2292818c19cf4f4e52e9","kind":"commit","published_at":"2022-12-13T15:11:52.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.2-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.2-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.2-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.2-java/manifests"},{"name":"selenium-4.7.1-java","sha":"c6795baf1a3ae337a3f5833bf0c79b6ccbb388f5","kind":"commit","published_at":"2022-12-07T17:01:42.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-java/manifests"},{"name":"selenium-4.7.2-python","sha":"5bc0c2c559cd5672fdb41d1075e9b21c8acf9f64","kind":"commit","published_at":"2022-12-02T20:24:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.2-python/manifests"},{"name":"selenium-4.7.1-python","sha":"01a47b4b4a3905532e94d248e0ecfdd9f03d116b","kind":"commit","published_at":"2022-12-02T18:56:07.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-python/manifests"},{"name":"selenium-4.7.1-ruby","sha":"9c771a1e2f629265005d60e55ece76281e42d8bc","kind":"commit","published_at":"2022-12-02T18:51:07.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.1-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.1-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.1-ruby/manifests"},{"name":"selenium-4.7.0","sha":"0a5b49d16f08308454f0f9204985b84ec5a13918","kind":"commit","published_at":"2022-12-01T21:51:33.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.7.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.7.0/manifests"},{"name":"selenium-4.6.1-python","sha":"24ea8c308fecd41162234dd1844ebf84142a509f","kind":"commit","published_at":"2022-11-24T20:21:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.6.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.6.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-python/manifests"},{"name":"selenium-4.6.1-javascript","sha":"7fdaf217b8e58033b7cd01d916e3063c8198a403","kind":"commit","published_at":"2022-11-15T12:15:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.6.1-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.6.1-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-javascript/manifests"},{"name":"selenium-4.6.1-ruby","sha":"cd5d46a8e9dcfdad084f97b5e5b5b13b241997d5","kind":"commit","published_at":"2022-11-04T15:08:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.6.1-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.6.1-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.1-ruby/manifests"},{"name":"selenium-4.6.0","sha":"79f1c02ae20c359daa5652d790894d5e4e24d93f","kind":"commit","published_at":"2022-11-04T09:55:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.6.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.6.0/manifests"},{"name":"selenium-4.5.3-java","sha":"4b786a1e4300577c195f9e8bcdf17844e67745ff","kind":"commit","published_at":"2022-10-24T12:52:37.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.5.3-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.3-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.3-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.3-java/manifests"},{"name":"selenium-4.5.2-java","sha":"702c64f787c90d5ea13de372cb87e046a08b0432","kind":"commit","published_at":"2022-10-21T11:13:20.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.5.2-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.2-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.2-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.2-java/manifests"},{"name":"selenium-4.5.1-java","sha":"fcc4df1bc9c0f1ce7a4dfe490fb1ff765d68aa0f","kind":"commit","published_at":"2022-10-20T12:26:43.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.5.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.1-java/manifests"},{"name":"selenium-4.5.1-dotnet","sha":"c5f457e75dd46db2a586eba3edd0ed2379662543","kind":"commit","published_at":"2022-10-06T19:09:39.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.5.1-dotnet","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.1-dotnet","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.1-dotnet","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.1-dotnet/manifests"},{"name":"selenium-4.5.0","sha":"feed290ab31d246c2af631a0b30e4a6ff29a2cdf","kind":"commit","published_at":"2022-09-28T20:09:35.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.5.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.5.0/manifests"},{"name":"selenium-4.4.2-python","sha":"a344d2735e88e844ab57149fd07432dc34d80371","kind":"commit","published_at":"2022-08-17T20:26:15.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.4.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.4.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.2-python/manifests"},{"name":"selenium-4.4.1-python","sha":"4b4ce7b7c8b6ea94158c9147989ec7cfae253f9e","kind":"commit","published_at":"2022-08-17T18:25:18.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.4.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.4.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.1-python/manifests"},{"name":"selenium-4.4.0","sha":"e5c75ed026a91a71a9a338532c4bacea5bd7a8ab","kind":"commit","published_at":"2022-08-09T10:22:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.4.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.4.0/manifests"},{"name":"selenium-4.3.1-javascript","sha":"7b1c6461f618fefcb8fec4a972bc7ec1abb47c34","kind":"commit","published_at":"2022-07-07T10:32:39.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.3.1-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.3.1-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.3.1-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.3.1-javascript/manifests"},{"name":"selenium-4.3.0","sha":"a4995e2c096239b42c373f26498a6c9bb4f2b3e7","kind":"commit","published_at":"2022-06-23T17:34:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.3.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.3.0/manifests"},{"name":"selenium-4.2.2-java","sha":"683ccb65d6dfcbd8476fb72367d211589b3507f2","kind":"commit","published_at":"2022-06-09T08:04:49.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.2.2-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.2.2-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.2-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.2-java/manifests"},{"name":"selenium-4.2.1-ruby","sha":"1570bb3c8296556a11172773a261e6e6fc604b06","kind":"commit","published_at":"2022-05-31T17:58:56.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.2.1-ruby","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.2.1-ruby","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.1-ruby","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.1-ruby/manifests"},{"name":"selenium-4.2.1-java","sha":"d1126b72e16a293335be2a3bc8b7cbdb11b0b6b0","kind":"commit","published_at":"2022-05-31T12:55:12.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.2.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.2.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.1-java/manifests"},{"name":"selenium-4.2.0","sha":"86eb61164882fc2df16427182ec83b1f8fff312e","kind":"commit","published_at":"2022-05-27T14:14:54.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.2.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.2.0/manifests"},{"name":"selenium-4.1.4-python","sha":"a695b91c4ae1f2d185d7832fd9bfca720c96434c","kind":"commit","published_at":"2022-05-05T11:00:00.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.4-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.4-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.4-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.4-python/manifests"},{"name":"selenium-4.1.2-javascript","sha":"ac3b2ec62832541fb4c5110f564c9168819c151c","kind":"commit","published_at":"2022-04-28T10:04:41.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.2-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.2-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-javascript/manifests"},{"name":"selenium-4.1.4-java","sha":"535d840ee2ed4b6cbe5d00484b9b9681aee75157","kind":"commit","published_at":"2022-04-27T11:18:28.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.4-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.4-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.4-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.4-java/manifests"},{"name":"selenium-4.1.3-java","sha":"7b1ebf28ef1feac5455351eb38964acf52f00d95","kind":"commit","published_at":"2022-03-27T20:32:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.3-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.3-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.3-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.3-java/manifests"},{"name":"selenium-4.1.3-python","sha":"a2a58baba0a9f7289de1cd7d98c7eb05a148613a","kind":"commit","published_at":"2022-03-09T15:12:59.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.3-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.3-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.3-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.3-python/manifests"},{"name":"selenium-4.1.2-python","sha":"1131aa079d9a31cdb018848d8b86c40e57448be7","kind":"commit","published_at":"2022-02-24T14:21:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.2-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.2-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-python/manifests"},{"name":"selenium-4.1.1-python","sha":"038fe453f5f00d6030ce8bab515b89b09c339e82","kind":"commit","published_at":"2022-02-24T12:50:36.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.1-python","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.1-python","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-python","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-python/manifests"},{"name":"selenium-4.1.2-java","sha":"792c055e918fcc7cf69e5e5024d6c900b1d3eb78","kind":"commit","published_at":"2022-01-29T21:05:00.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.2-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.2-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.2-java/manifests"},{"name":"selenium-4.1.1-javascript","sha":"1181c1c6e3267c8bb832704f55852feee2bb9593","kind":"commit","published_at":"2022-01-10T13:30:26.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.1-javascript","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.1-javascript","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-javascript","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-javascript/manifests"},{"name":"selenium-4.1.1-java","sha":"e8fcc2cecf033f804a950389a61fa66409a35e08","kind":"commit","published_at":"2021-12-17T21:56:32.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.1-java","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.1-java","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-java","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.1-java/manifests"},{"name":"selenium-4.1.0","sha":"d7dfe5ec604faae440cc0be2c088c8ba9b92804f","kind":"commit","published_at":"2021-11-22T15:16:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.1.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.1.0/manifests"},{"name":"selenium-4.0.0","sha":"3a2181467904af9043828cede13e5dc866c1af12","kind":"commit","published_at":"2021-10-13T13:06:08.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0/manifests"},{"name":"selenium-4.0.0-rc-3","sha":"6c6a72c3bc9e15eb063ad1c7efe38ebfacc44e6a","kind":"commit","published_at":"2021-10-08T16:50:18.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-rc-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-rc-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-3/manifests"},{"name":"selenium-4.0.0-rc-2","sha":"8d1e4aa5ae28111bd5863aa8f6d35b63c3d4e76e","kind":"commit","published_at":"2021-09-30T13:37:40.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-rc-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-rc-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-2/manifests"},{"name":"selenium-4.0.0-rc-1","sha":"d6bb232e525571b334325ed0859e2168e10f6edb","kind":"commit","published_at":"2021-09-01T15:14:36.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-rc-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-rc-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-rc-1/manifests"},{"name":"selenium-4.0.0-beta-4","sha":"29f46d02dddcd93abe3eee428de6f6a76b8934b0","kind":"commit","published_at":"2021-06-04T19:32:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-beta-4","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-beta-4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-4/manifests"},{"name":"selenium-4.0.0-beta-3","sha":"5d108f9a679634af0bbc387e7e3811bc1565912b","kind":"commit","published_at":"2021-04-13T17:20:59.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-beta-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-beta-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-3/manifests"},{"name":"selenium-4.0.0-beta-2","sha":"4ec0cfc112b37385b7bda4d72c9bf111f49620ea","kind":"commit","published_at":"2021-03-16T17:15:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-beta-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-beta-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-2/manifests"},{"name":"selenium-4.0.0-beta-1","sha":"9c03156c2b238258e711f8095e5299cc6ace8f9d","kind":"commit","published_at":"2021-02-15T11:12:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-beta-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-beta-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-beta-1/manifests"},{"name":"selenium-4.0.0-alpha-7","sha":"de8579b6d5959bf3c78d35e1b8a95861728d0cb4","kind":"commit","published_at":"2020-11-10T14:38:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-7","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-7/manifests"},{"name":"selenium-4.0.0-alpha-6","sha":"5f43a29cfccd9c7fb5adca5d69ed168150edb39f","kind":"commit","published_at":"2020-05-28T14:30:54.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-6","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-6/manifests"},{"name":"selenium-4.0.0-alpha-5","sha":"b3a0d621cc6b8fa9afbd5f14296f6063caf6e078","kind":"commit","published_at":"2020-03-17T22:15:59.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-5","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-5/manifests"},{"name":"selenium-4.0.0-alpha-4","sha":"c2d955b49eccb1d4b4be27a33dd5899af99f8a97","kind":"commit","published_at":"2020-01-09T13:31:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-4","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-4/manifests"},{"name":"selenium-4.0.0-alpha-3","sha":"8c567de6dc59881a9ec90dfdd623583f9a8e7801","kind":"commit","published_at":"2019-09-26T16:42:18.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-3/manifests"},{"name":"selenium-3.150.0","sha":"6e1307270a861e2433b6c5d9547a915108f79c6b","kind":"commit","published_at":"2019-08-22T19:27:49.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.150.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.150.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.150.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.150.0/manifests"},{"name":"selenium-4.0.0-alpha-2","sha":"f148142cf8aa65b703ad0896296ab66edf9776b8","kind":"commit","published_at":"2019-07-01T19:30:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-2/manifests"},{"name":"selenium-4.0.0-alpha-1","sha":"956e06188923218652c67cbba67a29b0a1b61f70","kind":"commit","published_at":"2019-04-18T17:52:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-4.0.0-alpha-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0-alpha-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-4.0.0-alpha-1/manifests"},{"name":"selenium-3.141.59","sha":"e82be7d3584062a0d16af8d562d387e3d4855aa1","kind":"commit","published_at":"2018-11-14T08:00:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.141.59","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.141.59","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.59","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.59/manifests"},{"name":"selenium-3.141.5","sha":"d54ebd709a3454e94c2a137c1b06d20f92a73784","kind":"commit","published_at":"2018-11-06T11:11:53.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.141.5","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.141.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.5/manifests"},{"name":"selenium-3.141.0","sha":"2ecb7d9aaa7787b32106507f9326953a9874fc2b","kind":"commit","published_at":"2018-10-30T18:13:12.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.141.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.141.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.141.0/manifests"},{"name":"atoms-20181002","sha":"7365e801648c19d529c6f5c2e49f8bdbb9221d5f","kind":"commit","published_at":"2018-10-02T23:27:03.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/atoms-20181002","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/atoms-20181002","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-20181002","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-20181002/manifests"},{"name":"atoms-base-20181002","sha":"a3444b8f4dbb6e83b8710455e6d8352439ac1874","kind":"commit","published_at":"2018-10-01T18:32:45.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/atoms-base-20181002","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/atoms-base-20181002","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-base-20181002","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-base-20181002/manifests"},{"name":"selenium-3.14.0","sha":"aacccce032ad8cda9fc15ecabfbd844c87db5497","kind":"commit","published_at":"2018-08-01T17:49:23.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.14.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.14.0/manifests"},{"name":"selenium-3.13.0","sha":"2f0d2927acdd5007da37536ce7cacd3ff78f5731","kind":"commit","published_at":"2018-06-25T15:16:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.13.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.13.0/manifests"},{"name":"selenium-3.12.0","sha":"7c6e0b33434167433fc243d472a7a6de4d76bff4","kind":"commit","published_at":"2018-05-08T13:48:51.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.12.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.12.0/manifests"},{"name":"selenium-3.11.0","sha":"e59cfb3e5941f6eb17de358cae43a26c643fdd16","kind":"commit","published_at":"2018-03-11T20:20:56.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.11.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.11.0/manifests"},{"name":"selenium-3.10.0","sha":"176b4a9e3082ac1926f2a436eb346760c37a5998","kind":"commit","published_at":"2018-03-02T18:46:14.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.10.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.10.0/manifests"},{"name":"selenium-3.9.1","sha":"63f7b500a7a5b4d6f48d8a1e7a5fee2dfda4f12e","kind":"commit","published_at":"2018-02-07T17:59:46.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.9.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.9.1/manifests"},{"name":"selenium-3.9.0","sha":"c18cecf59e1b3a321a9791a8bd6073d34fd1c0d7","kind":"commit","published_at":"2018-02-05T12:40:07.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.9.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.9.0/manifests"},{"name":"selenium-3.8.1","sha":"6e95a6684bb3b7c393449ec6959f339530783b8e","kind":"commit","published_at":"2017-12-01T17:16:30.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.8.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.8.1/manifests"},{"name":"selenium-3.8.0","sha":"57fe00346d1c4d6d3f8e33ae4d7426940e795a30","kind":"commit","published_at":"2017-11-28T20:00:29.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.8.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.8.0/manifests"},{"name":"selenium-3.7.1","sha":"b66efc8f47ccd43322075e070371f5fa0807b9a9","kind":"commit","published_at":"2017-11-06T11:27:01.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.7.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.7.1/manifests"},{"name":"selenium-3.7.0","sha":"2321c73b6562f22474511c6006c428b573e2ae50","kind":"commit","published_at":"2017-11-02T21:51:38.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.7.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.7.0/manifests"},{"name":"selenium-3.6.0","sha":"c9b7c73f4368f7ff01c1a849e24c6027cb038262","kind":"commit","published_at":"2017-09-22T17:17:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.6.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.6.0/manifests"},{"name":"selenium-3.5.3","sha":"a88d25fe6b71a9b200480374462078614f5319ac","kind":"commit","published_at":"2017-08-29T12:28:06.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.5.3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.3/manifests"},{"name":"selenium-3.5.2","sha":"10229a90206eab5be67d051d9a35eeab302fe39d","kind":"commit","published_at":"2017-08-21T17:22:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.5.2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.2/manifests"},{"name":"selenium-3.5.1","sha":"9c21bb67ef9c4aa1d8577d1638e7a885e5b087e7","kind":"commit","published_at":"2017-08-16T18:01:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.5.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.1/manifests"},{"name":"selenium-3.5.0","sha":"8def36e06884f01de765664a61385bba70ab9e02","kind":"commit","published_at":"2017-08-10T14:15:00.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.5.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.5.0/manifests"},{"name":"atoms-base-20170918","sha":"381f815652933f7077762ffba5f18794ab88c9b5","kind":"commit","published_at":"2017-07-20T22:44:15.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/atoms-base-20170918","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/atoms-base-20170918","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-base-20170918","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/atoms-base-20170918/manifests"},{"name":"selenium-3.4.0","sha":"7c2aed7298b37801f2f925042e36e30af603a614","kind":"commit","published_at":"2017-04-21T11:07:13.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.4.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.4.0/manifests"},{"name":"selenium-3.3.1","sha":"5234b325d586517e40d57c763d59c5b4caec09bf","kind":"commit","published_at":"2017-03-10T06:38:01.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.3.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.3.1/manifests"},{"name":"selenium-3.3.0","sha":"b526bd5b4100367f6565480a3c2d4cdda8d5a8b7","kind":"commit","published_at":"2017-03-07T19:00:42.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.3.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.3.0/manifests"},{"name":"selenium-3.2.0","sha":"8c03df6b79831c03bb1f9c13b6c5ee43008ebc03","kind":"commit","published_at":"2017-02-23T10:38:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.2.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.2.0/manifests"},{"name":"selenium-3.1.0","sha":"b94c9021aa40c12494cd3f88f7c2220af79f8b41","kind":"commit","published_at":"2017-02-15T17:46:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.1.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.1.0/manifests"},{"name":"selenium-3.0.1","sha":"1969d7507be7f3b55ae9d1c51c66cd39c1372280","kind":"commit","published_at":"2016-10-18T16:41:11.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.1/manifests"},{"name":"selenium-3.0.0","sha":"350cf60be65d3e67407d1eaf0a2b8d3f8153e84d","kind":"commit","published_at":"2016-10-13T16:36:33.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0/manifests"},{"name":"selenium-3.0.0-beta-4","sha":"31697821a1cb88faac2b1354d06fc7f456079630","kind":"commit","published_at":"2016-09-29T17:13:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.0-beta-4","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.0-beta-4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-4/manifests"},{"name":"selenium-3.0.0-beta-3","sha":"c7b525db30f2b3ad43cdf7749918fb3a434322dc","kind":"commit","published_at":"2016-09-01T21:44:22.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.0-beta-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.0-beta-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-3/manifests"},{"name":"selenium-3.0.0-beta-2","sha":"2aa21c1bca3ce863ed19791e20606a007a17dfa7","kind":"commit","published_at":"2016-08-02T21:41:45.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.0-beta-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.0-beta-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-2/manifests"},{"name":"selenium-3.0.0-beta-1","sha":"7fca92ddf2df2885df7e423f0f40dff7efb60786","kind":"tag","published_at":"2016-07-29T01:03:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-3.0.0-beta-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.0.0-beta-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-3.0.0-beta-1/manifests"},{"name":"2.53.1","sha":"a36b8b1cd5757287168e54b817830adce9b0158d","kind":"commit","published_at":"2016-06-30T17:26:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/2.53.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/2.53.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/2.53.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/2.53.1/manifests"},{"name":"selenium-2.53.1","sha":"a36b8b1cd5757287168e54b817830adce9b0158d","kind":"commit","published_at":"2016-06-30T17:26:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.53.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.53.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.53.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.53.1/manifests"},{"name":"selenium-2.53.0","sha":"35ae25b1534ae328c771e0856c93e187490ca824","kind":"commit","published_at":"2016-03-15T16:39:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.53.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.53.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.53.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.53.0/manifests"},{"name":"selenium-2.52.2","sha":"3c33fe97aa1daa54cc609136938d6b25bbc6a015","kind":"commit","published_at":"2016-03-07T17:05:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.52.2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.52.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.2/manifests"},{"name":"selenium-2.52.1","sha":"d2a55fd95928561cfa73c60043b3d39714a42500","kind":"commit","published_at":"2016-02-23T19:29:33.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.52.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.52.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.1/manifests"},{"name":"selenium-2.52.0","sha":"4c2593cfc3689a7fcd7be52549167e5ccc93ad28","kind":"commit","published_at":"2016-02-11T18:40:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.52.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.52.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.52.0/manifests"},{"name":"selenium-2.51.0","sha":"1af067dbcaedd7d2ab9af5151fc471d363d97193","kind":"commit","published_at":"2016-02-05T19:08:13.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.51.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.51.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.51.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.51.0/manifests"},{"name":"selenium-2.50.1","sha":"d7fc91b29de65b790abb01f3ac5f7ea2191c88a7","kind":"commit","published_at":"2016-01-29T19:01:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.50.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.50.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.50.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.50.1/manifests"},{"name":"selenium-2.50.0","sha":"1070ace4650453d518aeb03e7a9a36c9d264a8e7","kind":"commit","published_at":"2016-01-27T18:36:28.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.50.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.50.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.50.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.50.0/manifests"},{"name":"selenium-2.49.1","sha":"808c23b0963853d375cbe54b90bbd052e2528a54","kind":"commit","published_at":"2016-01-21T16:58:36.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.49.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.49.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.49.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.49.1/manifests"},{"name":"selenium-2.49.0","sha":"365eeb44deba2067b1761c8862ef21d55250e063","kind":"commit","published_at":"2016-01-13T18:27:24.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.49.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.49.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.49.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.49.0/manifests"},{"name":"selenium-2.48.2","sha":"41bccdd10cf2c0560f637404c2d96164b67d9d67","kind":"commit","published_at":"2015-10-09T19:51:22.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.48.2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.48.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.2/manifests"},{"name":"selenium-2.48.1","sha":"d80083d8f7b0b0319976ef9712f7a2b531abaceb","kind":"commit","published_at":"2015-10-08T21:03:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.48.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.48.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.1/manifests"},{"name":"selenium-2.48.0","sha":"b7b081a4f1289f17e8ecd38bc67e137c2a12e34a","kind":"commit","published_at":"2015-10-07T15:28:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.48.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.48.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.48.0/manifests"},{"name":"selenium-2.47.1","sha":"4d972c01cab1304452627f837654326a11eb92fe","kind":"commit","published_at":"2015-07-30T03:05:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.47.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.47.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.47.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.47.1/manifests"},{"name":"selenium-2.47.0","sha":"0e4837e94b1fad0db93e88cd972ed3e235a22892","kind":"commit","published_at":"2015-07-29T22:40:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.47.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.47.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.47.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.47.0/manifests"},{"name":"selenium-2.46.0","sha":"87c69e2df451bc00f4d60a07c0cdf8f0e4d20dd2","kind":"commit","published_at":"2015-06-04T16:09:12.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.46.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.46.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.46.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.46.0/manifests"},{"name":"selenium-2.45.0","sha":"5017cb8e7ca8e37638dc3091b2440b90a1d8686f","kind":"commit","published_at":"2015-02-26T23:54:45.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.45.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.45.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.45.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.45.0/manifests"},{"name":"selenium-2.44.0","sha":"76d78cf323ce037c5f92db6c1bba601c2ac43ad8","kind":"commit","published_at":"2014-10-23T19:57:17.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.44.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.44.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.44.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.44.0/manifests"},{"name":"selenium-2.43.1","sha":"5163bceef1bc36d43f3dc0b83c88998168a363a0","kind":"commit","published_at":"2014-09-10T16:21:11.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.43.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.43.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.43.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.43.1/manifests"},{"name":"selenium-2.43.0","sha":"597b76b1ed25e3381d7fb44dd5df4eca27bcb02e","kind":"commit","published_at":"2014-09-09T19:42:45.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.43.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.43.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.43.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.43.0/manifests"},{"name":"selenium-2.42.2","sha":"6a6995d31c7c56c340d6f45a76976d43506cd6cc","kind":"commit","published_at":"2014-06-02T15:01:22.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.42.2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.42.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.2/manifests"},{"name":"selenium-2.42.1","sha":"68b415adb11acca4286be45124325cc36cfc4a51","kind":"commit","published_at":"2014-05-29T16:13:16.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.42.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.42.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.1/manifests"},{"name":"selenium-2.42.0","sha":"5e824302019c86eae9c8c3ca9155e7307b410cf8","kind":"commit","published_at":"2014-05-22T19:46:53.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.42.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.42.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.42.0/manifests"},{"name":"selenium-2.41.0","sha":"3192d8a6c4449dc285928ba024779344f5423c58","kind":"commit","published_at":"2014-03-27T16:50:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.41.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.41.0/manifests"},{"name":"selenium-2.40.0","sha":"4c5c0568b004f67810ee41c459549aa4b09c651e","kind":"commit","published_at":"2014-02-19T18:13:52.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.40.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.40.0/manifests"},{"name":"selenium-2.39.0","sha":"14fa800511cc5d66d426e08b0b2ab926c7ed7398","kind":"commit","published_at":"2013-12-16T16:26:02.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.39.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.39.0/manifests"},{"name":"selenium-2.38.0","sha":"bd32d4e7247a32d801b3d2d4f84a4e7384300378","kind":"commit","published_at":"2013-12-05T15:42:50.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.38.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.38.0/manifests"},{"name":"selenium-2.37.0","sha":"a7c61cbd68657e133ae96672cf995890bad2ee42","kind":"commit","published_at":"2013-10-18T16:42:13.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.37.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.37.0/manifests"},{"name":"selenium-2.36.0","sha":"9b50f805d0a53506a5ee6a55be8669f106d8d34e","kind":"commit","published_at":"2013-10-17T16:00:05.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.36.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.36.0/manifests"},{"name":"selenium-2.35.0","sha":"8df0c6bedf70ff9f22c647788f9fe9c8d22210e2","kind":"commit","published_at":"2013-08-12T15:42:44.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.35.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.35.0/manifests"},{"name":"2.34.0","sha":"11cd0ef93615408e0b6b3bfa28defe125906461a","kind":"commit","published_at":"2013-08-06T16:45:45.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/2.34.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/2.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/2.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/2.34.0/manifests"},{"name":"selenium-2.33.0","sha":"4e90c975c693adf6252a92f753587b9c534806df","kind":"commit","published_at":"2013-05-22T15:14:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.33.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.33.0/manifests"},{"name":"selenium-2.32.0","sha":"6c40c187d01409a5dc3b7f8251859150c8af0bcb","kind":"commit","published_at":"2013-04-09T06:14:23.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.32.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.32.0/manifests"},{"name":"selenium-2.31.0","sha":"1bd294d185a80fa4206dfeab80ba773c04ac33c0","kind":"commit","published_at":"2013-02-27T20:32:20.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.31.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.31.0/manifests"},{"name":"selenium-2.30.0","sha":"dc1ef9ceb805a672f56dc49198f9ffbd4ca345c7","kind":"commit","published_at":"2013-02-18T22:21:23.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.30.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.30.0/manifests"},{"name":"selenium-2.29.0a","sha":"3b63d133ab2712f77a353cb88f50257e285c8730","kind":"tag","published_at":"2013-01-17T20:37:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.29.0a","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.29.0a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.29.0a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.29.0a/manifests"},{"name":"selenium-2.29.0","sha":"fa0a3f2c024f52ed8bcf6de6e1423ab0e116113d","kind":"tag","published_at":"2013-01-17T19:27:22.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.29.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.29.0/manifests"},{"name":"selenium-2.28.0","sha":"6322c139ceec44de06b91af333da96414d696824","kind":"commit","published_at":"2012-12-11T20:09:07.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.28.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.28.0/manifests"},{"name":"selenium-2.27.0","sha":"68f12d2c2634ec14bad90ffda0f21ccd09493d43","kind":"commit","published_at":"2012-12-05T17:12:18.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.27.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.27.0/manifests"},{"name":"selenium-2.26.0","sha":"11d659317941b891f3190439efeb3ac9ddd410fb","kind":"commit","published_at":"2012-11-01T19:18:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.26.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.26.0/manifests"},{"name":"selenium-2.25.0","sha":"6f709355b66438060c00dbd8bbb674079a27b2d0","kind":"commit","published_at":"2012-07-18T21:02:52.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.25.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.25.0/manifests"},{"name":"selenium-2.24.1","sha":"79c712d2b7659aa5d3862d9bdc25ea69ab28359e","kind":"commit","published_at":"2012-06-19T16:40:34.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.24.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.24.1/manifests"},{"name":"selenium-2.23.1","sha":"cb737b6d982ff2d107cfa5374f31fe5c60800447","kind":"commit","published_at":"2012-06-08T18:53:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.23.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.23.1/manifests"},{"name":"selenium-2.23.0","sha":"4ae7a570bbc8387d0c8f2bc42b9c8da61b9f0fa1","kind":"commit","published_at":"2012-06-07T15:30:36.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.23.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.23.0/manifests"},{"name":"selenium-2.22.0","sha":"454f20b753e0471e1125e2ba2d2e177cc5a16eef","kind":"commit","published_at":"2012-05-29T13:59:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.22.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.22.0/manifests"},{"name":"selenium-2.21.0","sha":"876ea4d010daa9705fab77ab7ed932ae5e628678","kind":"commit","published_at":"2012-04-11T19:04:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.21.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.21.0/manifests"},{"name":"selenium-2.20.0","sha":"4cda4bb766062f53512dc1374372053301b0fb9a","kind":"commit","published_at":"2012-02-27T18:46:57.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.20.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.20.0/manifests"},{"name":"selenium-2.19.0","sha":"ee4e001685bd29526f8e9ed37ce1dc67f224931e","kind":"commit","published_at":"2012-02-08T14:23:30.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.19.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.19.0/manifests"},{"name":"selenium-2.18.0","sha":"8c678b9772face8023aebe77a9a7de3edd857218","kind":"commit","published_at":"2012-01-27T14:44:35.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.18.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.18.0/manifests"},{"name":"selenium-2.17.0","sha":"1bcc8b032536cd4a9f3d3d4aace960eb59248dac","kind":"commit","published_at":"2012-01-16T16:35:30.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.17.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.17.0/manifests"},{"name":"selenium-2.16.0","sha":"bcfc39dd0fa554008cd0892bcfe6375c3c859eef","kind":"commit","published_at":"2012-01-04T18:34:18.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.16.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.16.0/manifests"},{"name":"selenium-2.15.0","sha":"db5306e98ca0000204bc37282c6fbdccc1912668","kind":"commit","published_at":"2011-12-08T09:31:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.15.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.15.0/manifests"},{"name":"selenium-2.14.0","sha":"dd321540d136f546e184d28d515492058710efd4","kind":"commit","published_at":"2011-11-29T00:11:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.14.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.14.0/manifests"},{"name":"selenium-2.13.0","sha":"1b87146a15208e8ce9915cbdf4499281925df368","kind":"commit","published_at":"2011-11-18T13:10:32.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.13.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.13.0/manifests"},{"name":"selenium-2.12.0","sha":"2cd1fe8a7a45ada70f13ae7aeae650826524120d","kind":"commit","published_at":"2011-11-10T17:43:20.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.12.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.12.0/manifests"},{"name":"selenium-2.11.0","sha":"b070ed0588ff8a7d48174f0fae2d38b59f09414e","kind":"commit","published_at":"2011-10-27T22:43:09.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.11.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.11.0/manifests"},{"name":"selenium-2.10.0","sha":"0355caf1d3f653a0f006cd5b8141f5af5b8fea17","kind":"commit","published_at":"2011-10-27T20:54:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.10.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.10.0/manifests"},{"name":"selenium-2.9.0","sha":"94bb63f0a198efcc63de05bda1e3620d241ebc0f","kind":"commit","published_at":"2011-10-20T21:43:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.9.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.9.0/manifests"},{"name":"android-froyo","sha":"9b2ad529e73bf3bada983315bc87b2bd0415856b","kind":"commit","published_at":"2011-10-20T21:06:35.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/android-froyo","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/android-froyo","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/android-froyo","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/android-froyo/manifests"},{"name":"selenium-2.8.0","sha":"566eb0aa4d7be93facb0686dc2cb5bd128f80647","kind":"commit","published_at":"2011-10-06T14:39:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.8.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.8.0/manifests"},{"name":"selenium-2.7.0","sha":"ee8c939dfae718cc51ad2639a02da4722132496a","kind":"commit","published_at":"2011-09-23T12:50:28.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.7.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.7.0/manifests"},{"name":"selenium-2.6.0","sha":"4e049daeeca02c78cf17f5c73c2bdf5c5016e15a","kind":"commit","published_at":"2011-09-13T14:44:50.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.6.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.6.0/manifests"},{"name":"selenium-2.5.0","sha":"25e013c9de77bd00dfcdd63af4610cd3c21eff8c","kind":"commit","published_at":"2011-08-23T18:19:34.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.5.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.5.0/manifests"},{"name":"selenium-2.4.0","sha":"710332c9ccb940c81e2a9258a9217822588477f3","kind":"commit","published_at":"2011-08-11T17:22:06.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.4.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.4.0/manifests"},{"name":"selenium-2.3.0","sha":"da8af104d813ba5fad736945d52e28677fbd4c8e","kind":"commit","published_at":"2011-08-01T17:24:12.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.3.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.3.0/manifests"},{"name":"selenium-2.2.0","sha":"6aa955e95be4d07e29e1f4fdd9e4a54e80237ab4","kind":"commit","published_at":"2011-07-25T19:14:58.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.2.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.2.0/manifests"},{"name":"selenium-2.1.0","sha":"755f287f146f9a86755b8f383a8cbf97df750940","kind":"commit","published_at":"2011-07-18T10:06:35.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.1.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.1.0/manifests"},{"name":"selenium-2.0.0","sha":"170513eda4ea4c477d5082e76645ecbee1b2995a","kind":"commit","published_at":"2011-07-07T19:04:39.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0.0/manifests"},{"name":"selenium-2.0-rc-3","sha":"7637ae5ca00cbc6296177ca3f8600d874e187f5b","kind":"commit","published_at":"2011-06-20T18:19:02.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-rc-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-rc-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc-3/manifests"},{"name":"selenium-2.0-rc-2","sha":"e7eb5d95ebe6016e706d02e9385ca2df50713de7","kind":"commit","published_at":"2011-06-02T10:36:54.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-rc-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-rc-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc-2/manifests"},{"name":"selenium-2.0-rc1","sha":"1c6d18a2a19625a3c33f63c1295e5d5edb61af38","kind":"commit","published_at":"2011-06-01T15:51:11.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-rc1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-rc1/manifests"},{"name":"ide-1.0.11","sha":"d1911a5d70a05ab9f5adb3f12ada5e524911ef69","kind":"commit","published_at":"2011-05-26T10:58:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/ide-1.0.11","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/ide-1.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/ide-1.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/ide-1.0.11/manifests"},{"name":"selenium-2.0-beta-3","sha":"cb27adce4460e3650ddcd93fe4fd8aba5bb60eab","kind":"commit","published_at":"2011-03-21T17:51:27.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-beta-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-beta-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-3/manifests"},{"name":"selenium-2.0-beta-2","sha":"e6f5c9eeb786e8e7436dd1d363e90e435e990851","kind":"commit","published_at":"2011-02-14T16:02:42.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-beta-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-beta-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-2/manifests"},{"name":"selenium-2.0-beta-1","sha":"d2b656ec311e257f0effa22aac8a431735838eac","kind":"commit","published_at":"2010-12-22T00:26:07.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-beta-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-beta-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-beta-1/manifests"},{"name":"selenium-2.0-alpha-7","sha":"b18becf3e7af333c1a534fe3b290d8878f70596c","kind":"commit","published_at":"2010-10-29T11:40:04.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-7","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-7/manifests"},{"name":"selenium-2.0-alpha-6","sha":"891b0baa326356741c2abd9bb8bb2e43b3cc72df","kind":"commit","published_at":"2010-10-08T12:56:39.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-6","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-6/manifests"},{"name":"selenium-2.0-alpha-5","sha":"1072ccfd52fddefd8ae55bb8ff5ef952f6684aa3","kind":"commit","published_at":"2010-07-20T08:23:32.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-5","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-5/manifests"},{"name":"selenium-2.0-alpha-4","sha":"42e04c835fa01d9bc745155b3c62dfb5ff94ae6d","kind":"commit","published_at":"2010-04-22T21:12:48.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-4","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-4/manifests"},{"name":"selenium-2.0-alpha-3","sha":"809b6aae356a1e6ca9ec2bc0d868eb0d607c9518","kind":"commit","published_at":"2010-04-18T06:51:57.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-3","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-3/manifests"},{"name":"selenium-2.0-alpha-2","sha":"22d129d3171362bb46651c21811bd4e2b2a8270d","kind":"commit","published_at":"2010-02-03T13:29:19.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-2/manifests"},{"name":"selenium-2.0-alpha-1","sha":"05ceaf552081cba0035862ea0483c08b2692338e","kind":"commit","published_at":"2009-12-11T20:34:15.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/selenium-2.0-alpha-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/selenium-2.0-alpha-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/selenium-2.0-alpha-1/manifests"},{"name":"core-1.0.1","sha":"4ce88c61a055082570cef3fafab0db45c0f9c18a","kind":"commit","published_at":"2009-06-06T18:00:10.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/core-1.0.1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/core-1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/core-1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/core-1.0.1/manifests"},{"name":"rc-1.0","sha":"a7a57bb920e4ba69b22ebac09c0a4a80c438b23a","kind":"commit","published_at":"2009-03-06T16:42:31.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/rc-1.0","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/rc-1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-1.0/manifests"},{"name":"rc-1.0-beta-2","sha":"1549c17438b7a8febcc133d50f1e2ed190dce85b","kind":"commit","published_at":"2009-01-12T21:16:55.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/rc-1.0-beta-2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/rc-1.0-beta-2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-1.0-beta-2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-1.0-beta-2/manifests"},{"name":"core-1.0-beta-1","sha":"a6c36ffd258595344a6f14f0c5ce093b3aeb6631","kind":"commit","published_at":"2009-01-12T20:32:43.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/core-1.0-beta-1","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/core-1.0-beta-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/core-1.0-beta-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/core-1.0-beta-1/manifests"},{"name":"rc-0.9.2","sha":"019ebae21c8af7beadc71777c918caca357b92fd","kind":"commit","published_at":"2007-09-20T18:38:21.000Z","download_url":"https://codeload.github.com/SeleniumHQ/selenium/tar.gz/rc-0.9.2","html_url":"https://github.com/SeleniumHQ/selenium/releases/tag/rc-0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeleniumHQ%2Fselenium/tags/rc-0.9.2/manifests"}]},"repo_metadata_updated_at":"2024-09-08T20:58:19.331Z","dependent_packages_count":1518,"downloads":26450258,"downloads_period":"last-month","dependent_repos_count":62210,"rankings":{"downloads":0.07134904724260693,"dependent_repos_count":0.022743655162167763,"dependent_packages_count":0.017057741371625825,"stargazers_count":0.16342416733460868,"forks_count":0.11115044377640053,"docker_downloads_count":0.33308449818142466,"average":0.11980159217813907},"purl":"pkg:pypi/selenium","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/selenium","docker_dependents_count":1099,"docker_downloads_count":221118560,"usage_url":"https://repos.ecosyste.ms/usage/pypi/selenium","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/selenium/dependencies","status":null,"funding_links":["https://opencollective.com/selenium","https://github.com/sponsors/SeleniumHQ"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/selenium/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/selenium/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/selenium/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/selenium/related_packages","maintainers":[{"uuid":"tebeka","login":"tebeka","name":null,"email":null,"url":null,"packages_count":23,"html_url":"https://pypi.org/user/tebeka/","role":null,"created_at":"2022-12-05T19:50:06.268Z","updated_at":"2022-12-05T19:50:06.268Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tebeka/packages"},{"uuid":"davehunt","login":"davehunt","name":null,"email":null,"url":null,"packages_count":44,"html_url":"https://pypi.org/user/davehunt/","role":null,"created_at":"2022-12-05T19:50:06.132Z","updated_at":"2022-12-05T19:50:06.132Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/davehunt/packages"},{"uuid":"David.Burns","login":"David.Burns","name":null,"email":null,"url":null,"packages_count":11,"html_url":"https://pypi.org/user/David.Burns/","role":null,"created_at":"2022-12-05T19:50:06.172Z","updated_at":"2022-12-05T19:50:06.172Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/David.Burns/packages"},{"uuid":"hugs","login":"hugs","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/hugs/","role":null,"created_at":"2022-12-05T19:50:06.186Z","updated_at":"2022-12-05T19:50:06.186Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/hugs/packages"},{"uuid":"adamgoucher","login":"adamgoucher","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/adamgoucher/","role":null,"created_at":"2022-12-05T19:50:06.096Z","updated_at":"2022-12-05T19:50:06.096Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/adamgoucher/packages"},{"uuid":"lmtierney","login":"lmtierney","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/lmtierney/","role":null,"created_at":"2022-12-05T19:50:06.195Z","updated_at":"2022-12-05T19:50:06.195Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/lmtierney/packages"},{"uuid":"lsemerau","login":"lsemerau","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/lsemerau/","role":null,"created_at":"2022-12-05T19:50:06.212Z","updated_at":"2022-12-05T19:50:06.212Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/lsemerau/packages"},{"uuid":"diemol","login":"diemol","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/diemol/","role":null,"created_at":"2022-12-05T19:50:06.238Z","updated_at":"2022-12-05T19:50:06.238Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/diemol/packages"},{"uuid":"titusfortner","login":"titusfortner","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/titusfortner/","role":null,"created_at":"2022-12-05T19:50:06.278Z","updated_at":"2022-12-05T19:50:06.278Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/titusfortner/packages"},{"uuid":"pujagani","login":"pujagani","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/pujagani/","role":"Maintainer","created_at":"2023-12-13T11:23:37.093Z","updated_at":"2023-12-13T11:23:37.093Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/pujagani/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690329,"maintainers_count":292761,"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":191,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4661557616","node_id":"PR_kwDOPUOpW87mWqfz","number":8783,"state":"open","title":"chore(deps): bump selenium from 4.43.0 to 4.44.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-15T02:24:18.000Z","updated_at":"2026-06-15T02:25:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.43.0 to 4.44.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.43.0\u0026new-version=4.44.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/arthexis/arthexis/pull/8783","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthexis%2Farthexis/issues/8783","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8783/packages"},{"uuid":"4464546439","node_id":"PR_kwDOSGfDCM7cbEqp","number":140,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["Review effort 1/5"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-17T18:34:25.000Z","updated_at":"2026-05-17T18:35:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":5,"packages":[{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"click","old_version":"8.3.3","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"black","old_version":"26.3.1","new_version":"26.5.0","repository_url":"https://github.com/psf/black"}],"path":null,"ecosystem":"pip"},"body":"### **User description**\nBumps the python-minor-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.43.0` | `4.44.0` |\n| [click](https://github.com/pallets/click) | `8.3.3` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.0` |\n\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.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.3.3 to 8.4.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.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.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.4.0/\"\u003ehttps://pypi.org/project/click/8.4.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParamType\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3371\"\u003e#3371\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3372\"\u003e#3372\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParameter\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2805\"\u003e#2805\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2745\"\u003e#2745\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3364\"\u003e#3364\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2012\"\u003e#2012\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3363\"\u003e#3363\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses \u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to pick\nnon-shadowed help option names, so \u003ccode\u003eTry '... -h'\u003c/code\u003e no longer points to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are shown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/2790\"\u003e#2790\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3208\"\u003e#3208\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is now\npassed directly to readline instead of being printed separately, allowing\nproper backspace, line editing, and line wrapping behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2968\"\u003e#2968\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n:pr:\u003ccode\u003e3372\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e2805\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n:issue:\u003ccode\u003e2745\u003c/code\u003e :pr:\u003ccode\u003e3364\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. :issue:\u003ccode\u003e2012\u003c/code\u003e :pr:\u003ccode\u003e3363\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses :meth:\u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to pick\nnon-shadowed help option names, so \u003ccode\u003eTry '... -h'\u003c/code\u003e no longer points to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are shown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). :issue:\u003ccode\u003e2790\u003c/code\u003e :pr:\u003ccode\u003e3208\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is now\npassed directly to readline instead of being printed separately, allowing\nproper backspace, line editing, and line wrapping behavior. :issue:\u003ccode\u003e2968\u003c/code\u003e\n:pr:\u003ccode\u003e2969\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse :func:\u003ccode\u003eos.startfile\u003c/code\u003e on Windows to open URLs in :func:\u003ccode\u003eopen_url\u003c/code\u003e,\nreplacing the \u003ccode\u003estart\u003c/code\u003e built-in which cannot be invoked without\n\u003ccode\u003eshell=True\u003c/code\u003e. :issue:\u003ccode\u003e3164\u003c/code\u003e :pr:\u003ccode\u003e3186\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Fish shell completion errors when option help text contains newlines.\n:issue:\u003ccode\u003e3043\u003c/code\u003e :pr:\u003ccode\u003e3126\u003c/code\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/pallets/click/commit/41f410fb7528305d7e87c8cfa704f6c2456f57fc\"\u003e\u003ccode\u003e41f410f\u003c/code\u003e\u003c/a\u003e Release 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e3e69e3bf8d749ac1a632f2ece4d38ec7f6588f5\"\u003e\u003ccode\u003ee3e69e3\u003c/code\u003e\u003c/a\u003e Add type annotations for instance attributes in \u003ccode\u003eutils\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3422\"\u003e#3422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3bb230dcd5d751f8605b46e9df5a541639d5fd4e\"\u003e\u003ccode\u003e3bb230d\u003c/code\u003e\u003c/a\u003e WIP: Fix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious characters (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/63274a79d08fdc5c19220696144489f7144a8547\"\u003e\u003ccode\u003e63274a7\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eclick.get_pager_file\u003c/code\u003e: add tests (\u003ca href=\"https://redirect.github.com/pallets/click/issues/1572\"\u003e#1572\u003c/a\u003e followup) (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3405\"\u003e#3405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0551bf53588ae87f462d336f24f853a156fefe3a\"\u003e\u003ccode\u003e0551bf5\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fc41aa1d0b62494eb93e92ff3929601221e3abf4\"\u003e\u003ccode\u003efc41aa1\u003c/code\u003e\u003c/a\u003e Apply class-body annotations to \u003ccode\u003eKeepOpenFile\u003c/code\u003e for consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b761eda3bad977ec2f485451d85fd8ec365f0bf4\"\u003e\u003ccode\u003eb761eda\u003c/code\u003e\u003c/a\u003e Skip some tests on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/98302ac4f49e443a48abd3fbb95c86202b89547d\"\u003e\u003ccode\u003e98302ac\u003c/code\u003e\u003c/a\u003e Check \u003ccode\u003ePAGER\u003c/code\u003e usage, color preservation and edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dbdae170879d460e78963f8af35c5cb9c5b86e89\"\u003e\u003ccode\u003edbdae17\u003c/code\u003e\u003c/a\u003e Fix documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1aa2d53d63ff68bf14b35931177aac9270e39713\"\u003e\u003ccode\u003e1aa2d53\u003c/code\u003e\u003c/a\u003e Redesigned tests and get_pager_file branching to be more clear and not set color\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.3...8.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/aef52e00c618f8203548fa6d1512eb49bf60f411\"\u003e\u003ccode\u003eaef52e0\u003c/code\u003e\u003c/a\u003e Improve fmt:skip handling in nested expressions with checks (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9e8749525bf91d5a78f2bf5534f8efaefab80b92\"\u003e\u003ccode\u003e9e87495\u003c/code\u003e\u003c/a\u003e Add CI coverage for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9fd9ea2835973981e3f5dc5b8eb76f2ded46aa61\"\u003e\u003ccode\u003e9fd9ea2\u003c/code\u003e\u003c/a\u003e Fix blackd error handling: split SourceASTParseError from ASTSafetyError (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/866c350cec7edd999ef55a0edb7b2202aa917f15\"\u003e\u003ccode\u003e866c350\u003c/code\u003e\u003c/a\u003e Bump docutils, sphinx, myst-parser (\u003ca href=\"https://redirect.github.com/psf/black/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05b4d1e647a20c9242a3cc095e3a19a984ef4123\"\u003e\u003ccode\u003e05b4d1e\u003c/code\u003e\u003c/a\u003e docs: update deprecated PEP URLs to peps.python.org (\u003ca href=\"https://redirect.github.com/psf/black/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1c25a476ddc48619332f545aa89bedc96429a33e\"\u003e\u003ccode\u003e1c25a47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/psf/black/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b0fa37ff449e679b8955c1ae0b6689abaa5025d7\"\u003e\u003ccode\u003eb0fa37f\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5109\"\u003e#5109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/530d5abba7ce2efbfe3fefffa368027274bd630a\"\u003e\u003ccode\u003e530d5ab\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5108\"\u003e#5108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e\n\n\n___\n\n### **PR Type**\nenhancement\n\n\n___\n\n### **Description**\n- 5 Python 패키지(requests, selenium, click, coverage, black)의 마이너/패치 버전 업데이트\n\n- app/requirements.txt: requests, selenium, click, coverage, black 업데이트\n\n- collector/requirements.txt: requests, selenium 업데이트\n\n- 프로젝트 전체의 Python 의존성 보안 및 호환성 개선\n\n\n___\n\n### Diagram Walkthrough\n\n\n```mermaid\nflowchart LR\n  subgraph \"app/requirements.txt\"\n    A1[\"requests 2.33.1 → 2.34.2\"]\n    A2[\"selenium 4.43.0 → 4.44.0\"]\n    A3[\"click 8.3.3 → 8.4.0\"]\n    A4[\"coverage 7.13.5 → 7.14.0\"]\n    A5[\"black 26.3.1 → 26.5.0\"]\n  end\n  subgraph \"collector/requirements.txt\"\n    B1[\"requests 2.33.1 → 2.34.2\"]\n    B2[\"selenium 4.43.0 → 4.44.0\"]\n  end\n```\n\n\n\n\u003cdetails\u003e \u003csummary\u003e\u003ch3\u003e File Walkthrough\u003c/h3\u003e\u003c/summary\u003e\n\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e\u003c/th\u003e\u003cth align=\"left\"\u003eRelevant files\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003ctable\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003e\u003cstrong\u003erequirements.txt\u003c/strong\u003e\u003cdd\u003e\u003ccode\u003e앱 의존성 5개 패키지 마이너/패치 업데이트\u003c/code\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/dd\u003e\u003c/summary\u003e\n\u003chr\u003e\n\napp/requirements.txt\n\n\u003cul\u003e\u003cli\u003erequests 2.33.1 → 2.34.2 버전 업데이트\u003cbr\u003e \u003cli\u003e selenium 4.43.0 → 4.44.0 버전 업데이트\u003cbr\u003e \u003cli\u003e click 8.3.3 → 8.4.0 버전 업데이트\u003cbr\u003e \u003cli\u003e coverage 7.13.5 → 7.14.0 버전 업데이트\u003cbr\u003e \u003cli\u003e black 26.3.1 → 26.5.0 버전 업데이트\u003c/ul\u003e\n\n\n\u003c/details\u003e\n\n\n  \u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"https://github.com/jclee941/blacklist/pull/140/files#diff-a43e2f882f43ac416efc2f4c9c187ab9071fe16b1eb1817fef32f26b144441d8\"\u003e+5/-5\u003c/a\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/td\u003e\n\n\u003c/tr\u003e\n\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003e\u003cstrong\u003erequirements.txt\u003c/strong\u003e\u003cdd\u003e\u003ccode\u003e수집기 의존성 2개 패키지 마이너/패치 업데이트\u003c/code\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/dd\u003e\u003c/summary\u003e\n\u003chr\u003e\n\ncollector/requirements.txt\n\n- requests 2.33.1 → 2.34.2 버전 업데이트\n- selenium 4.43.0 → 4.44.0 버전 업데이트\n\n\n\u003c/details\u003e\n\n\n  \u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"https://github.com/jclee941/blacklist/pull/140/files#diff-b5b1d8398b9269ce1fc6b75ffaeca45070b31ff0f8b6424f77a34f3e37d6b7a6\"\u003e+2/-2\u003c/a\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/td\u003e\n\n\u003c/tr\u003e\n\u003c/table\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n___\n\n","html_url":"https://github.com/jclee941/blacklist/pull/140","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclee941%2Fblacklist/issues/140","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/140/packages"},{"uuid":"4459115687","node_id":"PR_kwDOB1SzD87cLIYU","number":388,"state":"closed","title":"Bump the pip-all group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-18T02:56:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T07:29:39.000Z","updated_at":"2026-05-18T02:56:19.000Z","time_to_close":156399,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-all","update_count":9,"packages":[{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"sentry-sdk","old_version":"2.59.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"djangorestframework-stubs","old_version":"3.16.9","new_version":"3.17.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.20.2","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"types-requests","old_version":"2.33.0.20260503","new_version":"2.33.0.20260513","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-all group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.59.0` | `2.60.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.9` | `3.17.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.1.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.43.0` | `4.44.0` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260503` | `2.33.0.20260513` |\n\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\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/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.59.0 to 2.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.60.0\u003c/h2\u003e\n\u003cp\u003eAdds a new \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e option that controls how \u003ccode\u003egen_ai\u003c/code\u003e spans are\nsent to Sentry. When set, the SDK extracts all \u003ccode\u003egen_ai\u003c/code\u003e spans out of a\ntransaction and sends them as v2 envelope items.\u003c/p\u003e\n\u003cp\u003eEnable this option if \u003ccode\u003egen_ai\u003c/code\u003e spans are being dropped because the transaction payload exceeds size limits.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn='https://\u003ca href=\"mailto:examplePublicKey@o0.ingest.sentry.io\"\u003eexamplePublicKey@o0.ingest.sentry.io\u003c/a\u003e/0',\u003cbr /\u003e\nstream_gen_ai_spans=True,\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(asyncpg) Add cursor span support via BaseCursor method patching by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6252\"\u003e#6252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Pass along the conversation ID for openai \u003ccode\u003eresponses\u003c/code\u003e calls by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6199\"\u003e#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6178\"\u003e#6178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6260\"\u003e#6260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to send GenAI spans in the new span format by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6079\"\u003e#6079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eGuard against \u003ccode\u003echoices=None\u003c/code\u003e by \u003ca href=\"https://github.com/cla7aye15I4nd\"\u003e\u003ccode\u003e@​cla7aye15I4nd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6216\"\u003e#6216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6192\"\u003e#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Responses patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6191\"\u003e#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Chat Completions patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6190\"\u003e#6190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(stdlib) Instrument response body read for chunked HTTP responses by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6202\"\u003e#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(typing) Add \u003ccode\u003e@sentry_sdk.traces.trace\u003c/code\u003e overloads to fix typing by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6236\"\u003e#6236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse proto version 2 to fix backfilled user agent and IP by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6256\"\u003e#6256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003ehttp.server\u003c/code\u003e spans are segments by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6230\"\u003e#6230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle mypy 2.0 related failures by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6218\"\u003e#6218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eDjango\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck transaction annotations on transaction events by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6251\"\u003e#6251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReload middleware on test teardown by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6249\"\u003e#6249\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.60.0\u003c/h2\u003e\n\u003cp\u003eAdds a new \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e option that controls how \u003ccode\u003egen_ai\u003c/code\u003e spans are\nsent to Sentry. When set, the SDK extracts all \u003ccode\u003egen_ai\u003c/code\u003e spans out of a\ntransaction and sends them as v2 envelope items.\u003c/p\u003e\n\u003cp\u003eEnable this option if \u003ccode\u003egen_ai\u003c/code\u003e spans are being dropped because the transaction payload exceeds size limits.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn='https://\u003ca href=\"mailto:examplePublicKey@o0.ingest.sentry.io\"\u003eexamplePublicKey@o0.ingest.sentry.io\u003c/a\u003e/0',\u003cbr /\u003e\nstream_gen_ai_spans=True,\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(asyncpg) Add cursor span support via BaseCursor method patching by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6252\"\u003e#6252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Pass along the conversation ID for openai \u003ccode\u003eresponses\u003c/code\u003e calls by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6199\"\u003e#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6178\"\u003e#6178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6260\"\u003e#6260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to send GenAI spans in the new span format by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6079\"\u003e#6079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eGuard against \u003ccode\u003echoices=None\u003c/code\u003e by \u003ca href=\"https://github.com/cla7aye15I4nd\"\u003e\u003ccode\u003e@​cla7aye15I4nd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6216\"\u003e#6216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6192\"\u003e#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Responses patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6191\"\u003e#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Chat Completions patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6190\"\u003e#6190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(stdlib) Instrument response body read for chunked HTTP responses by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6202\"\u003e#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(typing) Add \u003ccode\u003e@sentry_sdk.traces.trace\u003c/code\u003e overloads to fix typing by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6236\"\u003e#6236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse proto version 2 to fix backfilled user agent and IP by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6256\"\u003e#6256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003ehttp.server\u003c/code\u003e spans are segments by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6230\"\u003e#6230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle mypy 2.0 related failures by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6218\"\u003e#6218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eDjango\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck transaction annotations on transaction events by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6251\"\u003e#6251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReload middleware on test teardown by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6249\"\u003e#6249\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e30caaa97793fd37b782d8c48b7727a43428fafd\"\u003e\u003ccode\u003ee30caaa\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d31ac85a92def5d6f2395fe2bfa8a9133c581323\"\u003e\u003ccode\u003ed31ac85\u003c/code\u003e\u003c/a\u003e release: 2.60.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fcb93051c5b85f28ee6dc623dd67736d430ef432\"\u003e\u003ccode\u003efcb9305\u003c/code\u003e\u003c/a\u003e feat: Remove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6260\"\u003e#6260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/253a4d42b13bb5b54cb3b623a32d9fc99639b226\"\u003e\u003ccode\u003e253a4d4\u003c/code\u003e\u003c/a\u003e feat: Add option to send GenAI spans in the new span format (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6079\"\u003e#6079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/619d803d82f7bbf2a15a80432334c863e4c206eb\"\u003e\u003ccode\u003e619d803\u003c/code\u003e\u003c/a\u003e test(langchain): Inline global state (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6261\"\u003e#6261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f92c8036a8ed166ab3be8a48f6344fd98d1761dd\"\u003e\u003ccode\u003ef92c803\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: Work around compromised transitive dependency (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6257\"\u003e#6257\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6262\"\u003e#6262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7a303dcbf0e4bc6aa701446d79e847d56db26137\"\u003e\u003ccode\u003e7a303dc\u003c/code\u003e\u003c/a\u003e Add option to drop scrubbed user IP addresses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6241\"\u003e#6241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/edaa6d6d142e430e1dd0a1097e0b77506cf159e9\"\u003e\u003ccode\u003eedaa6d6\u003c/code\u003e\u003c/a\u003e feat(pymongo): Add span streaming support (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6253\"\u003e#6253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0e47eadedea808a4ca7865a480552872208be890\"\u003e\u003ccode\u003e0e47ead\u003c/code\u003e\u003c/a\u003e feat(asyncpg): Add cursor span support via BaseCursor method patching (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6252\"\u003e#6252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/17cc8c7b2c31c2df130418bb49137814d4d35f7b\"\u003e\u003ccode\u003e17cc8c7\u003c/code\u003e\u003c/a\u003e fix: Use proto version 2 to fix backfilled user agent and IP (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6256\"\u003e#6256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.59.0...2.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 6.0.3 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/928eec423b8454590a46e50653698d85954f04de\"\u003e\u003ccode\u003e928eec4\u003c/code\u003e\u003c/a\u003e Version 6.0.4 release (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3375\"\u003e#3375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/a9942040a2ed28b8e1ae129578c1f5a4f2b449b8\"\u003e\u003ccode\u003ea994204\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v2 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3374\"\u003e#3374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/ec8107b44d798a16b42ff049fe3904c9a4b5df08\"\u003e\u003ccode\u003eec8107b\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.64.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/28d997bc1e6559579ce3f4663178a8294e402897\"\u003e\u003ccode\u003e28d997b\u003c/code\u003e\u003c/a\u003e Remove unused get_field_lookup_exact_type from helpers (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3372\"\u003e#3372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/d312d60b1d7e852f73babe2a76be1d2961b94393\"\u003e\u003ccode\u003ed312d60\u003c/code\u003e\u003c/a\u003e Update dependency django to v5.2.14 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3371\"\u003e#3371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/f20e49018f19e84a839ab5d11ac47654e671728a\"\u003e\u003ccode\u003ef20e490\u003c/code\u003e\u003c/a\u003e Update Django to 6.0.5 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3369\"\u003e#3369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6d9d0e26fff5462782bfeede76ffd8b2cc36712d\"\u003e\u003ccode\u003e6d9d0e2\u003c/code\u003e\u003c/a\u003e Resolve default_alias for positional Aggregate in annotate() (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6dd9231e36393d5ddaecb5d0ffca2a6b824bf0cc\"\u003e\u003ccode\u003e6dd9231\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.58.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3368\"\u003e#3368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e270482574c273798d875f2191945f64dbb0c00a\"\u003e\u003ccode\u003ee270482\u003c/code\u003e\u003c/a\u003e Update dependency psycopg to v3.3.4 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/cfb0f9a098e24d47f1c3cc5c5de971b599c6e907\"\u003e\u003ccode\u003ecfb0f9a\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.63.1 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.3...6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.9 to 3.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.17.0\u003c/h2\u003e\n\u003ch2\u003eVersioning\u003c/h2\u003e\n\u003cp\u003eThis is the first version targeting \u003ccode\u003edjangorestframework\u003c/code\u003e v3.17 and \u003ccode\u003edjango-stubs\u003c/code\u003e v6.0. However, not all stubs have been updated yet for 3.17:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/blob/master/scripts/stubtest/allowlist_todo_317.txt\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/blob/master/scripts/stubtest/allowlist_todo_317.txt\u003c/a\u003e for remaining work\u003c/li\u003e\n\u003cli\u003ePlease open pull requests, but keep changes small.\u003c/li\u003e\n\u003cli\u003eFirst check that nobody is already working on that topic: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/pulls\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/pulls\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e \u003ccode\u003ecode\u003c/code\u003e support and fix defaults in validators by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/947\"\u003etypeddjango/djangorestframework-stubs#947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing decorator stubs for DRF 3.17 by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/949\"\u003etypeddjango/djangorestframework-stubs#949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eSerializer\u003c/code\u003e context type \u003ccode\u003edict\u003c/code\u003e -\u0026gt; \u003ccode\u003eMapping\u003c/code\u003e by \u003ca href=\"https://github.com/BrianHicks\"\u003e\u003ccode\u003e@​BrianHicks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/946\"\u003etypeddjango/djangorestframework-stubs#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up and improve \u003ccode\u003erest_framework.renderers\u003c/code\u003e by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/960\"\u003etypeddjango/djangorestframework-stubs#960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up and improve \u003ccode\u003erest_framework.fields\u003c/code\u003e by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/964\"\u003etypeddjango/djangorestframework-stubs#964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHousekeeping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency djangorestframework to v3.17.1 \u0026amp; add new allowlist by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/941\"\u003etypeddjango/djangorestframework-stubs#941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock file maintenance - Django 5.2.13 \u0026amp; 6.0.4 by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/962\"\u003etypeddjango/djangorestframework-stubs#962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin \u003ccode\u003etypes-*\u003c/code\u003e dev dependencies for automatic Renovate updates by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/983\"\u003etypeddjango/djangorestframework-stubs#983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.17.0 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/984\"\u003etypeddjango/djangorestframework-stubs#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianHicks\"\u003e\u003ccode\u003e@​BrianHicks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/946\"\u003etypeddjango/djangorestframework-stubs#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/983\"\u003etypeddjango/djangorestframework-stubs#983\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/dcaf5607a9c22db2e19274ff49bd149489603e53\"\u003e\u003ccode\u003edcaf560\u003c/code\u003e\u003c/a\u003e Version 3.17.0 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/984\"\u003e#984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/9ac7355a57ab3ac7e7c00830bb0d8ad4df699e01\"\u003e\u003ccode\u003e9ac7355\u003c/code\u003e\u003c/a\u003e Clean up and improve \u003ccode\u003erest_framework.fields\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4f367f1fcbeb0c5f041a88ea12988fe5a4872e49\"\u003e\u003ccode\u003e4f367f1\u003c/code\u003e\u003c/a\u003e Lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7923d06e186d363e88e3590fe88a98bdd924920a\"\u003e\u003ccode\u003e7923d06\u003c/code\u003e\u003c/a\u003e Unpin \u003ccode\u003etypes-*\u003c/code\u003e dev dependencies for automatic Renovate updates (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/b2d9250b66d2aa7727793dd05e7cd37208ebcde6\"\u003e\u003ccode\u003eb2d9250\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v2 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/77b63b4ea29056d63b30b60b2d82e564f6194d6b\"\u003e\u003ccode\u003e77b63b4\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/96a5e21a45f39a3e65dbff74a4ce3482d0cdd9d1\"\u003e\u003ccode\u003e96a5e21\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/b6c3e0298ff742dfb60ec2a87319028cd955686f\"\u003e\u003ccode\u003eb6c3e02\u003c/code\u003e\u003c/a\u003e Update dependency types-pyyaml to v6.0.12.20260510 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/cc0af26d455fd5b3b735806409d17e6aef01a0b2\"\u003e\u003ccode\u003ecc0af26\u003c/code\u003e\u003c/a\u003e Update dependency types-requests to v2.33.0.20260508 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/001b9c2865e9c0aae2b1cb181baa5f02be2b6be1\"\u003e\u003ccode\u003e001b9c2\u003c/code\u003e\u003c/a\u003e Update dependency types-pyyaml to v6.0.12.20260508 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.2 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.2...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.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.33.0.20260503 to 2.33.0.20260513\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/rodlukas/UP-admin/pull/388","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlukas%2FUP-admin/issues/388","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/388/packages"},{"uuid":"4458906285","node_id":"PR_kwDODVE-7M7cKgWC","number":704,"state":"open","title":"Bump selenium from 4.43.0 to 4.44.0 in the pip group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T06:22:58.000Z","updated_at":"2026-05-16T06:23:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"the pip group","ecosystem":"pip"},"body":"Bumps the pip group with 1 update: [selenium](https://github.com/SeleniumHQ/Selenium).\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.43.0\u0026new-version=4.44.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/manics/jupyter-offlinenotebook/pull/704","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Fjupyter-offlinenotebook/issues/704","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/704/packages"},{"uuid":"4446235809","node_id":"PR_kwDOPY1mYM7biDQF","number":22,"state":"closed","title":"Bump selenium from 4.43.0 to 4.44.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T21:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T13:22:55.000Z","updated_at":"2026-05-14T21:26:58.000Z","time_to_close":29035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.43.0 to 4.44.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/komed3/boincstats/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2Fboincstats/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"},{"uuid":"4442093604","node_id":"PR_kwDOQ_GIVM7bVHsE","number":14,"state":"open","title":"deps: bump the python-packages group with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T00:27:29.000Z","updated_at":"2026-05-14T00:27:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-packages","update_count":3,"packages":[{"name":"tox","old_version":"4.53.1","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.1","repository_url":"https://github.com/psf/requests"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 3 updates: [tox](https://github.com/tox-dev/tox), [selenium](https://github.com/SeleniumHQ/Selenium) and [requests](https://github.com/psf/requests).\n\nUpdates `tox` from 4.53.1 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 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/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra 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/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema 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/tox/pull/3941\"\u003etox-dev/tox#3941\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/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\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/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/3816cfa1abd42dca21b9e837f26c59b246016aaf\"\u003e\u003ccode\u003e3816cfa\u003c/code\u003e\u003c/a\u003e Parameterize SupportsItems to handle Mapping key invariance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7426\"\u003e#7426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b684dcb9bbf3aa557d1238e72062c4a29737dd1c\"\u003e\u003ccode\u003eb684dcb\u003c/code\u003e\u003c/a\u003e sessions: fix hooks type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7425\"\u003e#7425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/KaiErikNiermann/sneaky-selenium/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fsneaky-selenium/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4371725496","node_id":"PR_kwDOSGfDCM7XxLvg","number":30,"state":"open","title":"chore(deps): bump the python-minor-patch group with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-03T12:01:36.000Z","updated_at":"2026-05-03T12:01:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":11,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"redis","old_version":"7.2.1","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"flask-wtf","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"gunicorn","old_version":"25.1.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.4.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.25.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.2` | `1.3.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.1.0` | `25.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.1 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.1...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.24.1 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.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/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.6 to 3.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.8\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.8 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/Werkzeug/3.1.8/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.8/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/45?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/45?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is missing or has invalid characters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3142\"\u003e#3142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 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/Werkzeug/3.1.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.8\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is\nmissing or has invalid characters. :issue:\u003ccode\u003e3142\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/werkzeug/commit/c1a26b45fb06d5e086b4d6be820c3302f588d815\"\u003e\u003ccode\u003ec1a26b4\u003c/code\u003e\u003c/a\u003e release version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7926f0bc3a0da01827e59c81d6da55f8f75a2eed\"\u003e\u003ccode\u003e7926f0b\u003c/code\u003e\u003c/a\u003e relax get_host strictness (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3148\"\u003e#3148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/deab88f61fa57d37d19f83ea438d4bdebb5a743c\"\u003e\u003ccode\u003edeab88f\u003c/code\u003e\u003c/a\u003e relax get_host strictness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/65eb6398231fe94f32fbc765a74980ca61fe5d2b\"\u003e\u003ccode\u003e65eb639\u003c/code\u003e\u003c/a\u003e start version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7720b76b37b17a33e5414bddb992c92ba854f0e3\"\u003e\u003ccode\u003e7720b76\u003c/code\u003e\u003c/a\u003e release version 3.1.7 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-wtf` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit autoupdate by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/607\"\u003epallets-eco/flask-wtf#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove slsa provenance by \u003ca href=\"https://github.com/davidism\"\u003e\u003ccode\u003e@​davidism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/638\"\u003epallets-eco/flask-wtf#638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/648\"\u003epallets-eco/flask-wtf#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry not to read uploaded files into memory by \u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/649\"\u003epallets-eco/flask-wtf#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReCaptcha field testing mode documentation by \u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow nonce in reCaptcha by \u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCSRF meta tag helper by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/674\"\u003epallets-eco/flask-wtf#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewidget support the kwargs to add custom html attributes by \u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect exempts in CSRFProtect.protect() by \u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdding RECAPTCHA_ENABLE to disable recaptcha by \u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove CSRF Documentation by \u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ehttps://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't read the whole uploaded files to know their size. :pr:\u003ccode\u003e635\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9. Start support for Python 3.14. :pr:\u003ccode\u003e648\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv. :pr:\u003ccode\u003e649\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow setting a \u003ccode\u003enonce\u003c/code\u003e on :class:\u003ccode\u003e~flask_wtf.recaptcha.RecaptchaField\u003c/code\u003e\n(string or zero-argument callable) for nonce-based Content Security\nPolicies. :pr:\u003ccode\u003e312\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecsrf_meta_tag()\u003c/code\u003e helper and \u003ccode\u003eWTF_CSRF_META_NAME\u003c/code\u003e setting to render\nthe CSRF token as an HTML \u003ccode\u003e\u0026lt;meta\u0026gt;\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eForward keyword arguments passed to the reCAPTCHA widget as HTML attributes\non the captcha \u003ccode\u003e\u0026lt;div\u0026gt;\u003c/code\u003e, with the field id used as a default \u003ccode\u003eid\u003c/code\u003e.\n:pr:\u003ccode\u003e353\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply_exemptions\u003c/code\u003e parameter to\n:meth:\u003ccode\u003e~flask_wtf.csrf.CSRFProtect.protect\u003c/code\u003e so \u003ccode\u003e@csrf.exempt\u003c/code\u003e keeps working\nwhen validation is triggered manually. :pr:\u003ccode\u003e419\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eRECAPTCHA_ENABLED\u003c/code\u003e setting. :pr:\u003ccode\u003e509\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/flask-wtf/commit/63eb4d3bd55735fc136bdc6f23a90ca2b220b602\"\u003e\u003ccode\u003e63eb4d3\u003c/code\u003e\u003c/a\u003e chore: bump to v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/192ece3da0d98682c13e12574d7b1fc938bdd8e8\"\u003e\u003ccode\u003e192ece3\u003c/code\u003e\u003c/a\u003e Improve CSRF Documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/1f8522d4a362ee66ab12a1ebf55379501dfcef0d\"\u003e\u003ccode\u003e1f8522d\u003c/code\u003e\u003c/a\u003e Adding RECAPTCHA_ENABLE to disable recaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/64b9215be16dc123f7eb187494dbba6bd0e5c2cd\"\u003e\u003ccode\u003e64b9215\u003c/code\u003e\u003c/a\u003e Respect exempts in CSRFProtect.protect() (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/adf674f80c5c5e55c050729e3ec086b4d6cb0f26\"\u003e\u003ccode\u003eadf674f\u003c/code\u003e\u003c/a\u003e widget support the kwargs to add custom html attributes (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ea1f797112f857c783dcd2c6e3954357df8e1bb7\"\u003e\u003ccode\u003eea1f797\u003c/code\u003e\u003c/a\u003e feat: CSRF meta tag helper (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/412e3efda3703b141ca75afbcbf0538a7797b713\"\u003e\u003ccode\u003e412e3ef\u003c/code\u003e\u003c/a\u003e Allow nonce in reCaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/312\"\u003e#312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/a7b764a1fa8f4ea960d81104c364a2d29429e1b8\"\u003e\u003ccode\u003ea7b764a\u003c/code\u003e\u003c/a\u003e ReCaptcha field testing mode documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/c053c0ec11560e68e558636962bbec1115a7ae2a\"\u003e\u003ccode\u003ec053c0e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.1 to 9.0.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ca2216cdf72717aa3c2355ba5f454080c78d9273\"\u003e\u003ccode\u003eca2216c\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv from 0.9.11 to 0.11.6 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.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.3\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.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.3 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.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\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.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\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/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.1.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collection...\n\n_Description has been truncated_","html_url":"https://github.com/jclee941/blacklist/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclee941%2Fblacklist/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"4371335396","node_id":"PR_kwDORBwyB87XwAVt","number":8,"state":"closed","title":"pip: update selenium requirement from ~=4.17.2 to ~=4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-03T09:02:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-03T08:58:35.000Z","updated_at":"2026-05-03T09:02:24.000Z","time_to_close":226,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip: update","packages":[{"name":"selenium","old_version":"~=4.17.2","new_version":"~=4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/commits/selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/adrmrt/patreon-scraper/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrmrt%2Fpatreon-scraper/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"4362543828","node_id":"PR_kwDOACgOtc7XU5P-","number":1981,"state":"closed","title":"Update selenium requirement from \u003e=4.3.0 to \u003e=4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-16T18:37:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T02:57:05.000Z","updated_at":"2026-05-16T18:37:29.000Z","time_to_close":1352415,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"selenium","old_version":"\u003e=4.3.0","new_version":"\u003e=4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.3.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/robotframework/SeleniumLibrary/pull/1981","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FSeleniumLibrary/issues/1981","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1981/packages"},{"uuid":"4339890489","node_id":"PR_kwDORzfYGs7WKqy2","number":4,"state":"open","title":"deps(dependabot): bump the all-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-28T01:22:08.000Z","updated_at":"2026-05-01T21:47:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(dependabot): bump","group_name":"all-dependencies","update_count":6,"packages":[{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"pytest-localserver","old_version":"0.7.0","new_version":"0.10.0","repository_url":"https://github.com/pytest-dev/pytest-localserver"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nUpdates the requirements on [utilo](https://github.com/anaticulae/utilo), [configos](https://github.com/anaticulae/configos), [pytest](https://github.com/pytest-dev/pytest), [selenium](https://github.com/SeleniumHQ/Selenium), [pytest-localserver](https://github.com/pytest-dev/pytest-localserver) and [wheel](https://github.com/pypa/wheel) to permit the latest version.\nUpdates `utilo` to 2.107.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anaticulae/utilo/releases\"\u003eutilo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.107.4 (2026-04-12)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the MIT License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Enable utilosafe (\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecli\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecollection\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003estring\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/anaticulae/utilo/compare/v2.107.3...v2.107.4\"\u003ev2.107.3...v2.107.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/anaticulae/utilo/blob/main/CHANGELOG\"\u003eutilo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.107.4 (2026-04-12)\u003c/h2\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Enable utilosafe\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecli\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecollection\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003estring\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.3 (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efix\u003c/strong\u003e: Enable unit test after improving installer\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3a96aef7fc94ea6a1e837d3ca54105312e3509cb\"\u003e\u003ccode\u003e3a96aef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.2 (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003elicense\u003c/strong\u003e: Add missing license file\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/151357d2186cc9e170d3aca04b1bf359ac7ae77e\"\u003e\u003ccode\u003e151357d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003emake\u003c/strong\u003e: Do not run sync\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3f8c364074e41e915478464a5d9d7e2535898379\"\u003e\u003ccode\u003e3f8c364\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003epyproject\u003c/strong\u003e: Adjust requirements\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/00392d7f26335b57c9d13e65ca00a3b51d2464c4\"\u003e\u003ccode\u003e00392d7\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ebuild\u003c/strong\u003e: Upgrade docker image\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/a74a4cacb8dec18449b3663dcc0a9918811985f4\"\u003e\u003ccode\u003ea74a4ca\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Install utilo correctly\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/33ab931e83720e26a982a516902e3b82b464ae31\"\u003e\u003ccode\u003e33ab931\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.1 (2026-04-09)\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/anaticulae/utilo/commit/236655029c02c9857833f98b355168c835a27e16\"\u003e\u003ccode\u003e2366550\u003c/code\u003e\u003c/a\u003e 2.107.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e test(string): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e test(collection): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e test(cli): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e chore(requirements): enable utilosafe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/95801ff464b8a1a35d66af094444eb56e6f0adbb\"\u003e\u003ccode\u003e95801ff\u003c/code\u003e\u003c/a\u003e 2.107.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3a96aef7fc94ea6a1e837d3ca54105312e3509cb\"\u003e\u003ccode\u003e3a96aef\u003c/code\u003e\u003c/a\u003e test(fix): enable unit test after improving installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/e42161102be0ec426239a7cc0e9d75b23fdc9a0a\"\u003e\u003ccode\u003ee421611\u003c/code\u003e\u003c/a\u003e 2.107.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3f8c364074e41e915478464a5d9d7e2535898379\"\u003e\u003ccode\u003e3f8c364\u003c/code\u003e\u003c/a\u003e fix(make): do not run sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/33ab931e83720e26a982a516902e3b82b464ae31\"\u003e\u003ccode\u003e33ab931\u003c/code\u003e\u003c/a\u003e chore(docker): install utilo correctly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anaticulae/utilo/compare/v2.107.0...v2.107.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `configos` to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anaticulae/configos/blob/main/CHANGELOG\"\u003econfigos's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.4 (2026-04-11)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emake\u003c/strong\u003e: Add missing rule\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/76d9c879a2d368fddefb6ce58870b304aedbe560\"\u003e\u003ccode\u003e76d9c87\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einit\u003c/strong\u003e: Determine version dynamically\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/18b71c09e0df5a4d19495d9dd0b1df80925f3ca9\"\u003e\u003ccode\u003e18b71c0\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.3 (2026-04-11)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest\u003c/strong\u003e: Adjust unit test\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/43794328e2534213e5a06ed6eba0ebfbe0ecf0da\"\u003e\u003ccode\u003e4379432\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ebuild\u003c/strong\u003e: Use modern approach\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/73926afcf56e21bbc5fc7b23e30efdce6c4f9880\"\u003e\u003ccode\u003e73926af\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Add missing requirement\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/6500df1c263ba436fc55092122548c961c46d832\"\u003e\u003ccode\u003e6500df1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Adjust environment\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/e816bdacebb2a60b264e2a803f0f5d5362d7cc7f\"\u003e\u003ccode\u003ee816bda\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Adjust new build concept\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/aba25963fa4742f96a0b01d8f2c0df9a1ce258ae\"\u003e\u003ccode\u003eaba2596\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Upgrade baw\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/5d146fb33dbfc79e4ab9b52b4a9cf72515f70d6e\"\u003e\u003ccode\u003e5d146fb\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Use access rights to access base image\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/4ad12b8b72a4566aa4f888dd7af8a8cfbce41444\"\u003e\u003ccode\u003e4ad12b8\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Use prod image\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/a96a2ebd7ebd3f750880dd7f042ae922587d3b75\"\u003e\u003ccode\u003ea96a2eb\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003egithub\u003c/strong\u003e: Add .github\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/bc9feffa19b1f7359bb6314f805c6785bbb5db6a\"\u003e\u003ccode\u003ebc9feff\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003emake\u003c/strong\u003e: Adjust makefile\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/b89e83c6ab0332a17791997e26c324f79e692f07\"\u003e\u003ccode\u003eb89e83c\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Remove outdated requirements\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anaticulae/configos/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-localserver` from 0.7.0 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/releases\"\u003epytest-localserver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Python 3.7 tests only on Ubuntu 22.04 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/110\"\u003epytest-dev/pytest-localserver#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README to provide more clear examples by \u003ca href=\"https://github.com/alissa-huskey\"\u003e\u003ccode\u003e@​alissa-huskey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/105\"\u003epytest-dev/pytest-localserver#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.6 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/113\"\u003epytest-dev/pytest-localserver#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlock broken version of pytest-cov by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/117\"\u003epytest-dev/pytest-localserver#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate black target version to Python 3.7 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/118\"\u003epytest-dev/pytest-localserver#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove driver code by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/119\"\u003epytest-dev/pytest-localserver#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PyTest command from setup.py by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/124\"\u003epytest-dev/pytest-localserver#124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate outdated action versions by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/129\"\u003epytest-dev/pytest-localserver#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/130\"\u003epytest-dev/pytest-localserver#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch to PEP-639 compliant expression of license metadata by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/128\"\u003epytest-dev/pytest-localserver#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsolidate tests by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/131\"\u003epytest-dev/pytest-localserver#131\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow testing with pytest 9 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/133\"\u003epytest-dev/pytest-localserver#133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a summary job that checks whether all tests passed by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/134\"\u003epytest-dev/pytest-localserver#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate AUTHORS and CHANGES for 0.10 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/135\"\u003epytest-dev/pytest-localserver#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/101\"\u003epytest-dev/pytest-localserver#101\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/102\"\u003epytest-dev/pytest-localserver#102\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/103\"\u003epytest-dev/pytest-localserver#103\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/104\"\u003epytest-dev/pytest-localserver#104\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/106\"\u003epytest-dev/pytest-localserver#106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/107\"\u003epytest-dev/pytest-localserver#107\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/108\"\u003epytest-dev/pytest-localserver#108\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/109\"\u003epytest-dev/pytest-localserver#109\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/111\"\u003epytest-dev/pytest-localserver#111\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/112\"\u003epytest-dev/pytest-localserver#112\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/114\"\u003epytest-dev/pytest-localserver#114\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/115\"\u003epytest-dev/pytest-localserver#115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/116\"\u003epytest-dev/pytest-localserver#116\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/120\"\u003epytest-dev/pytest-localserver#120\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/121\"\u003epytest-dev/pytest-localserver#121\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/122\"\u003epytest-dev/pytest-localserver#122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/123\"\u003epytest-dev/pytest-localserver#123\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/132\"\u003epytest-dev/pytest-localserver#132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alissa-huskey\"\u003e\u003ccode\u003e@​alissa-huskey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/105\"\u003epytest-dev/pytest-localserver#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/113\"\u003epytest-dev/pytest-localserver#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you for helping out!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.10.0\"\u003ehttps://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0.post0\u003c/h2\u003e\n\u003cp\u003eThis release makes some long-overdue updates to the allowed versions of pytest. For most people, this will be a drop-in replacement for version 0.9; however, anyone forced to work with a really old version of pytest (specifically \u003ccode\u003epytest\u0026gt;=4,\u0026lt;4.6\u003c/code\u003e) will have to stay on 0.9.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump required pytest version to 4.6 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/98\"\u003epytest-dev/pytest-localserver#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease max allowed pytest version to 9 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/99\"\u003epytest-dev/pytest-localserver#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/96\"\u003epytest-dev/pytest-localserver#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changes for upcoming 0.9.0.post0 release by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/100\"\u003epytest-dev/pytest-localserver#100\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/pytest-localserver/compare/v0.9.0...v0.9.0.post0\"\u003ehttps://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.9.0.post0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for exposing server certificate by \u003ca href=\"https://github.com/Nicoretti\"\u003e\u003ccode\u003e@​Nicoretti\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/75\"\u003epytest-dev/pytest-localserver#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly store request data by \u003ca href=\"https://github.com/a-gerhard\"\u003e\u003ccode\u003e@​a-gerhard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/78\"\u003epytest-dev/pytest-localserver#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pre-commit errors by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/80\"\u003epytest-dev/pytest-localserver#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/81\"\u003epytest-dev/pytest-localserver#81\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/83\"\u003epytest-dev/pytest-localserver#83\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/85\"\u003epytest-dev/pytest-localserver#85\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/86\"\u003epytest-dev/pytest-localserver#86\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/87\"\u003epytest-dev/pytest-localserver#87\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/89\"\u003epytest-dev/pytest-localserver#89\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/90\"\u003epytest-dev/pytest-localserver#90\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/91\"\u003epytest-dev/pytest-localserver#91\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/92\"\u003epytest-dev/pytest-localserver#92\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/94\"\u003epytest-dev/pytest-localserver#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused \u003ccode\u003esix\u003c/code\u003e from tox config by \u003ca href=\"https://github.com/boidolr\"\u003e\u003ccode\u003e@​boidolr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/84\"\u003epytest-dev/pytest-localserver#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.5 support by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/88\"\u003epytest-dev/pytest-localserver#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 support by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/93\"\u003epytest-dev/pytest-localserver#93\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate author file and changelog for the upcoming 0.9.0 release by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/95\"\u003epytest-dev/pytest-localserver#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/pytest-dev/pytest-localserver/blob/main/CHANGES\"\u003epytest-localserver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0 (2025-11-24)\u003c/h2\u003e\n\u003cp\u003eClarify examples in README\nDrop Python 3.6 support\nAdd Python 3.14 support\nAdd pytest 9 support\nConsolidate tests\nRemove obsolete driver code in some modules\nRemove obsolete PyTest command from setup.py\nSwitch to PEP-639 compliant license metadata\nUpdate outdated GitHub Action versions\nAdd a summary GitHub Action job\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.9.0.post0 (2024-10-05)\u003c/h2\u003e\n\u003cp\u003eUpdate listed dependencies to add support for pytest 8 and drop support for pytest\u0026lt;4.6\u003c/p\u003e\n\u003ch2\u003e0.9.0 (2024-08-13)\u003c/h2\u003e\n\u003cp\u003eAdd support for exposing server certificate\nExplicitly store request data (fixes \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/77\"\u003e#77\u003c/a\u003e)\nMake the code compliant with pre-commit hooks\nRemove unused \u003ccode\u003esix\u003c/code\u003e from tox config\nDrop Python 3.5 support\nAdd Python 3.13 support\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.8.1 (2023-09-23)\u003c/h2\u003e\n\u003cp\u003eIgnore AttributeError when shutting down server\nAdd support for Python 3.12 (or at least, list it explicitly in the classifiers)\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.8.0 (2023-07-14)\u003c/h2\u003e\n\u003cp\u003eImprove deployment workflow to use trusted publishing and upload to Test PyPI first\nRemove a bunch of obsolete code\nClean up the smtp module's driver code\u003c/p\u003e\n\u003ch2\u003e0.7.1 (2023-01-29)\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/pytest-dev/pytest-localserver/commit/d79c1108a0238a2cf6d7d6f2687b5e74d10f4113\"\u003e\u003ccode\u003ed79c110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/135\"\u003e#135\u003c/a\u003e from pytest-dev/update-for-0.10/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/2957c0a427ddb037e5b575396ec0b6d0603002fe\"\u003e\u003ccode\u003e2957c0a\u003c/code\u003e\u003c/a\u003e Update CHANGES for the upcoming 0.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/a38e61140ac5f67813d860359214a9e0198b3fbf\"\u003e\u003ccode\u003ea38e611\u003c/code\u003e\u003c/a\u003e Update the AUTHORS file with recent contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/3e7d73131adc86393e65f927170b819165ba08a4\"\u003e\u003ccode\u003e3e7d731\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/134\"\u003e#134\u003c/a\u003e from pytest-dev/test-status-check/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/fd567ea318de342192a3d0cd8677a3cdaf30a3f9\"\u003e\u003ccode\u003efd567ea\u003c/code\u003e\u003c/a\u003e Add a summary job that checks whether all tests passed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/82e4f11d4b2f70f0c72961e44d0b6e121d8c4cfb\"\u003e\u003ccode\u003e82e4f11\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/133\"\u003e#133\u003c/a\u003e from pytest-dev/support-pytest-9/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/f975518bd03c35f1f45e77335e9ee562c6466e2b\"\u003e\u003ccode\u003ef975518\u003c/code\u003e\u003c/a\u003e Allow testing with pytest 9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/9bc3c59f7723578fd743e24cb18bd0d9f6c920ae\"\u003e\u003ccode\u003e9bc3c59\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/131\"\u003e#131\u003c/a\u003e from pytest-dev/consolidate-tests/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/29b219524987f87926e998326b424b0e395e6ac8\"\u003e\u003ccode\u003e29b2195\u003c/code\u003e\u003c/a\u003e Enable package cache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/3d2724d16adc9a862f2dc98e59894df5d266a33a\"\u003e\u003ccode\u003e3d2724d\u003c/code\u003e\u003c/a\u003e Combine CI jobs into one per Python version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/compare/v0.7.0...v0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without unpacking them (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains uppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory inside uses normalized lowercase naming (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/411\"\u003e#411\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/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.47.0 (2026-04-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without\nunpacking them (\u003ccode\u003e[#639](https://github.com/pypa/wheel/issues/639) \u0026lt;https://github.com/pypa/wheel/issues/639\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains\nuppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory\ninside uses normalized lowercase naming\n(\u003ccode\u003e[#411](https://github.com/pypa/wheel/issues/411) \u0026lt;https://github.com/pypa/wheel/issues/411\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/efd83a750f07a33462ea2eed365fd8dac9e51442\"\u003e\u003ccode\u003eefd83a7\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/bb69216d35588c2a0febc2d9a130727fe6e46ee3\"\u003e\u003ccode\u003ebb69216\u003c/code\u003e\u003c/a\u003e Reordered the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d5a1763ce927618bfa7d82abe334d0d14a93cc37\"\u003e\u003ccode\u003ed5a1763\u003c/code\u003e\u003c/a\u003e fix(wheelfile): resolve .dist-info path case-insensitively when reading wheel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/5718957928ece25eb0d1c12023c71dea4fcb5cf9\"\u003e\u003ccode\u003e5718957\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/625806845ae5756be3cc0f9d44832c29079c0954\"\u003e\u003ccode\u003e6258068\u003c/code\u003e\u003c/a\u003e chore: log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/2975debc789682b3a448b134611acc6962a93eb3\"\u003e\u003ccode\u003e2975deb\u003c/code\u003e\u003c/a\u003e Require tox \u0026gt;= 4.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/47674ba770e5ee72d679b7eb32b558e0c177640d\"\u003e\u003ccode\u003e47674ba\u003c/code\u003e\u003c/a\u003e chore: add check-sdist to checks (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/56223f6f8dfa8d3d40923f24dcf159204698d7b6\"\u003e\u003ccode\u003e56223f6\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e__package__\u003c/code\u003e → \u003ccode\u003e__spec__.parent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/679\"\u003e#679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0ce509e02dc3cd1b7b0bdf868482de062b3c21c3\"\u003e\u003ccode\u003e0ce509e\u003c/code\u003e\u003c/a\u003e Added the wheel info subcommand (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/39039c0f3446c1ed5ec52621e98bc2bad8178a06\"\u003e\u003ccode\u003e39039c0\u003c/code\u003e\u003c/a\u003e Improved the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.46.3...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/anaticulae/utilotest/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anaticulae%2Futilotest/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4335373822","node_id":"PR_kwDOJytPo87V8NXk","number":809,"state":"closed","title":"build(deps): update selenium requirement from \u003e=4.15.0 to \u003e=4.36.0 in /034.redmine-mcp-server","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-30T00:48:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T11:31:11.000Z","updated_at":"2026-04-30T00:48:15.000Z","time_to_close":220623,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"selenium","old_version":"\u003e=4.15.0","new_version":"\u003e=4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"/034.redmine-mcp-server","ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.36.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[py]: close ipv6 port in case of error by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16165\"\u003eSeleniumHQ/selenium#16165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update issue label in CONTRIBUTING.md by \u003ca href=\"https://github.com/pallavigitwork\"\u003e\u003ccode\u003e@​pallavigitwork\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16169\"\u003eSeleniumHQ/selenium#16169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][docs]: update dead API docs link to API reference in \u003ccode\u003eindex.rst\u003c/code\u003e by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16170\"\u003eSeleniumHQ/selenium#16170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] close the HttpClient after the session is gone by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16182\"\u003eSeleniumHQ/selenium#16182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docstring and comments in keys.py by \u003ca href=\"https://github.com/Aidoni0797\"\u003e\u003ccode\u003e@​Aidoni0797\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16187\"\u003eSeleniumHQ/selenium#16187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Simplify type naming of internal command parameters by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16188\"\u003eSeleniumHQ/selenium#16188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix formatting by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16189\"\u003eSeleniumHQ/selenium#16189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support WebExtension module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15850\"\u003eSeleniumHQ/selenium#15850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb][BiDi] Create browser module, added user context related methods by \u003ca href=\"https://github.com/aguspe\"\u003e\u003ccode\u003e@​aguspe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15371\"\u003eSeleniumHQ/selenium#15371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update bug report section in CONTRIBUTING.md by \u003ca href=\"https://github.com/pallavigitwork\"\u003e\u003ccode\u003e@​pallavigitwork\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16191\"\u003eSeleniumHQ/selenium#16191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Adding flag to enable SafariDriver logging. by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16196\"\u003eSeleniumHQ/selenium#16196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] extend the scope of the properties of the HttpCommandExecutor class by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16186\"\u003eSeleniumHQ/selenium#16186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Serialize base64 encoded string directly to bytes by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16203\"\u003eSeleniumHQ/selenium#16203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Make cookie expiry as TimeSpan by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16204\"\u003eSeleniumHQ/selenium#16204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Improve readTimeout in handle session between Router and Node by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16163\"\u003eSeleniumHQ/selenium#16163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix type annotation error and raise clearer error message by \u003ca href=\"https://github.com/Paresh-0007\"\u003e\u003ccode\u003e@​Paresh-0007\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16174\"\u003eSeleniumHQ/selenium#16174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Unifying select class by \u003ca href=\"https://github.com/vicky-iv\"\u003e\u003ccode\u003e@​vicky-iv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16220\"\u003eSeleniumHQ/selenium#16220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Update dependency rules_cc to v0.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16198\"\u003eSeleniumHQ/selenium#16198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update testing-library monorepo by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16173\"\u003eSeleniumHQ/selenium#16173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency tmp to ^0.2.5 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16172\"\u003eSeleniumHQ/selenium#16172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Update dependency System.Text.Json to 8.0.6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16171\"\u003eSeleniumHQ/selenium#16171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency react-router-dom to v6.30.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16076\"\u003eSeleniumHQ/selenium#16076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update material-ui monorepo to v5.18.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16062\"\u003eSeleniumHQ/selenium#16062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency ws to ^8.18.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16009\"\u003eSeleniumHQ/selenium#16009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update react monorepo by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15949\"\u003eSeleniumHQ/selenium#15949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Update dependency net.bytebuddy:byte-buddy to v1.17.7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16237\"\u003eSeleniumHQ/selenium#16237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update dependency charset-normalizer to v3.4.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16239\"\u003eSeleniumHQ/selenium#16239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update dependency cryptography to v45.0.6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16240\"\u003eSeleniumHQ/selenium#16240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] Update dependency charset-normalizer to v3.4.3\u0026quot; by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16242\"\u003eSeleniumHQ/selenium#16242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] Update dependency cryptography to v45.0.6\u0026quot; by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16243\"\u003eSeleniumHQ/selenium#16243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies for dev and fix script by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16244\"\u003eSeleniumHQ/selenium#16244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Help old .net framework copy selenium manager to output by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16228\"\u003eSeleniumHQ/selenium#16228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add hooks around getScreenshotAs in WebDriverListener \u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16232\"\u003e#16232\u003c/a\u003e by \u003ca href=\"https://github.com/giulong\"\u003e\u003ccode\u003e@​giulong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16233\"\u003eSeleniumHQ/selenium#16233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi]: enable \u003ccode\u003ehistory_updated\u003c/code\u003e event test by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16236\"\u003eSeleniumHQ/selenium#16236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump ruff version for linting/formatting by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16254\"\u003eSeleniumHQ/selenium#16254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi]: use bidi \u003ccode\u003enavigate\u003c/code\u003e command in network tests by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16251\"\u003eSeleniumHQ/selenium#16251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix find port for IPv4 only environments by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16216\"\u003eSeleniumHQ/selenium#16216\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/SeleniumHQ/selenium/commit/6d115cfd877e1ba381c647fd08ba6450ae256624\"\u003e\u003ccode\u003e6d115cf\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of Selenium 4.36.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16332\"\u003e#16332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/2eeadabc5250ea590f6f142df1ad8d9f23eb37ab\"\u003e\u003ccode\u003e2eeadab\u003c/code\u003e\u003c/a\u003e [rust] Log browser path also in offline mode (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16215\"\u003e#16215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8e84f0d9bdb0e41836b62f92b2a94f594967a659\"\u003e\u003ccode\u003e8e84f0d\u003c/code\u003e\u003c/a\u003e [rust] Set Rust version to 1.89.0 in WORKSPACE (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16368\"\u003e#16368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6061c87ca0f222e69ecd9e4cf16b04b8d516aed3\"\u003e\u003ccode\u003e6061c87\u003c/code\u003e\u003c/a\u003e [grid] UI Light/Dark Mode Toggle (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16364\"\u003e#16364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/a578a474735babb006fa412d3888f44aeb4bd051\"\u003e\u003ccode\u003ea578a47\u003c/code\u003e\u003c/a\u003e [rust] Bump Rust edition to 2024, rulest_rust to 0.65.0, and crates to latest...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/93fdf5797cf3900016cc9c647c54158d5ee5e23c\"\u003e\u003ccode\u003e93fdf57\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Give only one chance to receive from remote end (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16360\"\u003e#16360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/b3b66a00e9cd1a854c25b71be441d0ed1f93138b\"\u003e\u003ccode\u003eb3b66a0\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Introduce BaseNavigationInfo type as interface (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16348\"\u003e#16348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/9a4bbcc639202ce3fe7c10feb1b05f3a1d37844a\"\u003e\u003ccode\u003e9a4bbcc\u003c/code\u003e\u003c/a\u003e [py] Add --enable-chrome-logs to chrome service args to inherit browser i/o s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4c603ec37c9657a99a0846593f2d81f8e3103ee3\"\u003e\u003ccode\u003e4c603ec\u003c/code\u003e\u003c/a\u003e [rb] fix unit tests (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16357\"\u003e#16357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8a7216855c8cf19cdfc64443db0242ddeab73770\"\u003e\u003ccode\u003e8a72168\u003c/code\u003e\u003c/a\u003e [dotnet] Begin reading of driver service output to fix Firefox disposing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.15.0...selenium-4.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/kohei39san/mystudy-handson/pull/809","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kohei39san%2Fmystudy-handson/issues/809","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/809/packages"},{"uuid":"4318770113","node_id":"PR_kwDOQYTN0c7VHnvW","number":5316,"state":"closed","title":"deps(python): bump the python-minor group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-23T20:57:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T20:45:39.000Z","updated_at":"2026-04-23T20:57:45.000Z","time_to_close":724,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":12,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"cachetools","old_version":"7.0.5","new_version":"7.0.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"altair","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/vega/altair"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.96.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.5` | `7.0.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.11` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [altair](https://github.com/vega/altair) | `6.0.0` | `6.1.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\n\nUpdates `fastapi` from 0.135.3 to 0.136.1\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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\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 translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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\u003c/blockquote\u003e\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/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\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.135.3...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastmcp` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.4: Patch Me If You Can\u003c/h2\u003e\n\u003cp\u003eA grab bag of fixes, hardening, and polish.\u003c/p\u003e\n\u003cp\u003eThe headline behavior change: background tasks are now scoped to the authorization context rather than the MCP session, so a task kicked off by an authenticated user survives session churn and stays tied to who started it. This is a breaking change for anyone relying on the old session-scoped semantics.\u003c/p\u003e\n\u003cp\u003eSecurity got three meaningful upgrades. \u003ccode\u003eFileUpload\u003c/code\u003e now validates actual decoded base64 size instead of trusting the client-reported number, so an attacker can't claim \u0026quot;10 bytes\u0026quot; and deliver 10MB. The proxy client stops forwarding inbound HTTP headers to unrelated remote servers — previously a header meant for server A could leak to server B. And AuthKit now auto-binds token audience to the resource URL per RFC 8707, closing a token-reuse gap across MCP resources.\u003c/p\u003e\n\u003cp\u003eSchema handling had a rough-edges pass. \u003ccode\u003ejson_schema_to_type\u003c/code\u003e no longer crashes on Python keywords, boolean schemas, empty enums, or name collisions, and we added a 232K-schema crash test from APIs.guru to keep it honest. Gemini 2.5 Flash compatibility is fixed by stripping \u003ccode\u003etitle\u003c/code\u003e fields the model rejects. Parameter descriptions are now extracted from docstrings automatically, so your tool signatures document themselves.\u003c/p\u003e\n\u003cp\u003ePlus a Keycloak OAuth provider for enterprise auth, improvements to \u003ccode\u003ectx.elicit()\u003c/code\u003e (new \u003ccode\u003eresponse_title\u003c/code\u003e/\u003ccode\u003eresponse_description\u003c/code\u003e, deprecation warning when called without \u003ccode\u003eresponse_type\u003c/code\u003e), and dozens of smaller fixes across transforms, retry middleware, resource templates, and client disconnect handling.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScope tasks to authorization context, not session by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3800\"\u003ePrefectHQ/fastmcp#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydocket\u0026gt;=0.19.0, drop fakeredis pin by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3822\"\u003ePrefectHQ/fastmcp#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd real-world schema crash test (232K schemas from APIs.guru) by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3826\"\u003ePrefectHQ/fastmcp#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 7 zero-violation ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3841\"\u003ePrefectHQ/fastmcp#3841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePromote 7 ty rules from ignore to warn by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3852\"\u003ePrefectHQ/fastmcp#3852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace ___ with hash-based backend tool routing and per-tool prefab resources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3824\"\u003ePrefectHQ/fastmcp#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 4 ruff rules (DTZ, ERA, ISC, INP) and fix 9 violations by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3842\"\u003ePrefectHQ/fastmcp#3842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract parameter descriptions from docstrings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3872\"\u003ePrefectHQ/fastmcp#3872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up schema crash test (CSafeLoader + xdist-safe aggregation) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3873\"\u003ePrefectHQ/fastmcp#3873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: bump OpenAPI init perf threshold to 200ms for Windows CI by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3879\"\u003ePrefectHQ/fastmcp#3879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: unify object-schema conversion through _object_schema_to_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3884\"\u003ePrefectHQ/fastmcp#3884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Keycloak OAuth Provider for Enterprise Authentication and local dev by \u003ca href=\"https://github.com/stephaneberle9\"\u003e\u003ccode\u003e@​stephaneberle9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1937\"\u003ePrefectHQ/fastmcp#1937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow auth providers to override protected resource base URLs by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3900\"\u003ePrefectHQ/fastmcp#3900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable PERF and T20 ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3845\"\u003ePrefectHQ/fastmcp#3845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd response_title and response_description to ctx.elicit() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3912\"\u003ePrefectHQ/fastmcp#3912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate ctx.elicit() without response_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3916\"\u003ePrefectHQ/fastmcp#3916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity 🔒\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate actual base64 data size in FileUpload, not client-reported size by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3816\"\u003ePrefectHQ/fastmcp#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop forwarding inbound HTTP headers to unrelated remote servers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3837\"\u003ePrefectHQ/fastmcp#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuthKit: auto-bind token audience to resource URL (RFC 8707) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3905\"\u003ePrefectHQ/fastmcp#3905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersion-check is_docket_available() to avoid transitive pydocket crash by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3807\"\u003ePrefectHQ/fastmcp#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: materialize generators before result conversion, handle bytes gracefully by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3830\"\u003ePrefectHQ/fastmcp#3830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix json_schema_to_type crashes on keywords, boolean schemas, empty enums, and name collisions by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3818\"\u003ePrefectHQ/fastmcp#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace \u003ccode\u003eor\u003c/code\u003e with \u003ccode\u003eis not None\u003c/code\u003e checks for config/override merging by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3833\"\u003ePrefectHQ/fastmcp#3833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: TransformedTool sync fn crash and schema mutation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3823\"\u003ePrefectHQ/fastmcp#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cross-provider duplicate detection, error visibility, mask propagation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3827\"\u003ePrefectHQ/fastmcp#3827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't pass HTTP kwargs when transport is unspecified by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3838\"\u003ePrefectHQ/fastmcp#3838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip title fields from tool schemas for Gemini 2.5 Flash compatibility by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3861\"\u003ePrefectHQ/fastmcp#3861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: retry when LLM returns text instead of calling final_response by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3850\"\u003ePrefectHQ/fastmcp#3850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on unhandled content types in sampling handler dispatch chains by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3857\"\u003ePrefectHQ/fastmcp#3857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken code examples in docs by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3869\"\u003ePrefectHQ/fastmcp#3869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: GoogleGenaiSamplingHandler leaks thought parts and gives unhelpful errors on empty responses by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3849\"\u003ePrefectHQ/fastmcp#3849\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/PrefectHQ/fastmcp/commit/7d7607473d7713d9937cbbbe0bfc635976c511d3\"\u003e\u003ccode\u003e7d76074\u003c/code\u003e\u003c/a\u003e Stop pydantic 2.13 from leaking _WrappedResult docstring into tool output sch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/b732a4a516e4a41f053e46dbd86e9520cf5178bf\"\u003e\u003ccode\u003eb732a4a\u003c/code\u003e\u003c/a\u003e Overhaul apps docs (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/5c2ff1bd7b9844a3891149741de56a5e4d24621d\"\u003e\u003ccode\u003e5c2ff1b\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f4f2ec07fbb611a25ce27e1b4f9b67f54bc2420a\"\u003e\u003ccode\u003ef4f2ec0\u003c/code\u003e\u003c/a\u003e Deprecate ctx.elicit() without response_type (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/338b80c3ae3b8c5ac3a7e094178c9f34eb286ea8\"\u003e\u003ccode\u003e338b80c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/110cd3adcb7a433923ed8ed4a8b23d076a313ab5\"\u003e\u003ccode\u003e110cd3a\u003c/code\u003e\u003c/a\u003e Add response_title and response_description to ctx.elicit() (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/311784617639d7b46490d863f2e4bb24be6361c5\"\u003e\u003ccode\u003e3117846\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/031c7e03b48330345bc4d1f82a9cc78ed269b07c\"\u003e\u003ccode\u003e031c7e0\u003c/code\u003e\u003c/a\u003e Fix RetryMiddleware not retrying tool errors (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3858\"\u003e#3858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/200d79e7d28f36b36c271621d9550aa3fb3c0aa7\"\u003e\u003ccode\u003e200d79e\u003c/code\u003e\u003c/a\u003e Enable PERF and T20 ruff rules (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/82f310fe61dba25de34f2be3e203555ccfc4181d\"\u003e\u003ccode\u003e82f310f\u003c/code\u003e\u003c/a\u003e AuthKit: auto-bind token audience to resource URL (RFC 8707) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3905\"\u003e#3905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\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/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.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/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.5 to 7.0.6\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\u003ev7.0.6 (2026-04-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate project URLs.\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/28d4506f2a49d781ffbcecb095fa7aba5bb80aff\"\u003e\u003ccode\u003e28d4506\u003c/code\u003e\u003c/a\u003e Release v7.0.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51921a4812b3304be9625ed004f024935a8036af\"\u003e\u003ccode\u003e51921a4\u003c/code\u003e\u003c/a\u003e Remove _TimedCache default timer to simplify type stubs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a4249f6aa3b4cb2fe287b08631c308bb88b9396c\"\u003e\u003ccode\u003ea4249f6\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.5.2 to 6.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/aa87283858f09b6820103373b7623d4ef51d233f\"\u003e\u003ccode\u003eaa87283\u003c/code\u003e\u003c/a\u003e feat: update project URLs in pyproject.toml to show on pypi.org (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.5...v7.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit...\n\n_Description has been truncated_","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5316","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5316","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5316/packages"},{"uuid":"4317780026","node_id":"PR_kwDOPwjk687VEWi7","number":497,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-23T17:52:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T17:45:20.000Z","updated_at":"2026-04-23T17:52:03.000Z","time_to_close":400,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":9,"packages":[{"name":"fastapi","old_version":"0.135.2","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sentry-sdk","old_version":"2.56.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cloudinary","old_version":"1.44.1","new_version":"1.44.2","repository_url":"https://github.com/cloudinary/pycloudinary"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 9 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.2` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.56.0` | `2.58.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [cloudinary](https://github.com/cloudinary/pycloudinary) | `1.44.1` | `1.44.2` |\n\n\nUpdates `fastapi` from 0.135.2 to 0.136.1\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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\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 translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\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.135.2...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.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's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio 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/2917\"\u003eKludex/uvicorn#2917\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.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware 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/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs 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/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context 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/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\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.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio 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/2888\"\u003eKludex/uvicorn#2888\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.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\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/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\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/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.56.0 to 2.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/commit/ce445d96977ec083b97495c917aa0c3ce453689d\"\u003e\u003ccode\u003ece445d9\u003c/code\u003e\u003c/a\u003e release: 2.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c0e9cfc8536f0d9ba22925e4bea17034138cd0\"\u003e\u003ccode\u003ec0c0e9c\u003c/code\u003e\u003c/a\u003e feat(litellm): Add async callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5969\"\u003e#5969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ea74b63881d2cf1d71130a8b6ef4dfff4e4cd337\"\u003e\u003ccode\u003eea74b63\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5975\"\u003e#5975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/06ed1bca2f9302055ba43dc058f5afcc731b8d79\"\u003e\u003ccode\u003e06ed1bc\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66ef2e6976a1ae86e97aca08cbc806f9e579f324\"\u003e\u003ccode\u003e66ef2e6\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming `completion()...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/96ebbf67d91146ebb30be6e0898a637ea6c2c697\"\u003e\u003ccode\u003e96ebbf6\u003c/code\u003e\u003c/a\u003e fix(litellm): Avoid double span exits when streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e22b5dc3447a5bee71574a5c22934e5aa8a7642\"\u003e\u003ccode\u003e7e22b5d\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 8.0.0 to 9.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5979\"\u003e#5979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35151a90a98affa0d72f7cb8b314a8fb54ac8b51\"\u003e\u003ccode\u003e35151a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5980\"\u003e#5980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d1c5b53096e76353e2aa3ffdd8a845f38bb04bb6\"\u003e\u003ccode\u003ed1c5b53\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5981\"\u003e#5981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e255aafa913955eed43333aa204f1476d9dc1ff2\"\u003e\u003ccode\u003ee255aaf\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 6b1f51ec8af03e19...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.56.0...2.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/se...\n\n_Description has been truncated_","html_url":"https://github.com/muppetbrown/mana_meeples_boardgame_list/pull/497","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/muppetbrown%2Fmana_meeples_boardgame_list/issues/497","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/497/packages"},{"uuid":"4299013851","node_id":"PR_kwDOQYTN0c7UHerq","number":5296,"state":"closed","title":"deps(python): bump the python-minor group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-23T20:44:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T22:16:54.000Z","updated_at":"2026-04-23T20:44:57.000Z","time_to_close":253681,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":10,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"cachetools","old_version":"7.0.5","new_version":"7.0.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.96.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.5` | `7.0.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\n\nUpdates `fastapi` from 0.135.3 to 0.136.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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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\u003c/blockquote\u003e\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/708606c982cf35718cb2214c0bb9261cf548f042\"\u003e\u003ccode\u003e708606c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/13be6a3a0f12d3f36c286196ef555dd51dc09edb\"\u003e\u003ccode\u003e13be6a3\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b264878d71b2dc0e9e0f90ef15459d4302a7f9c\"\u003e\u003ccode\u003e4b26487\u003c/code\u003e\u003c/a\u003e ⬆️ Support free-threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15149\"\u003e#15149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f796c346a8537876de43729ff1ca1409d4648893\"\u003e\u003ccode\u003ef796c34\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09d1d1cb7073b3c7bd1f58fcf6faefa9b2c29de4\"\u003e\u003ccode\u003e09d1d1c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae4e45c5cc20a1e1503fbcab2369821d188feb09\"\u003e\u003ccode\u003eae4e45c\u003c/code\u003e\u003c/a\u003e 🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15363\"\u003e#15363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9653034b8d459607a4b7f761e6c23a6f287fa5fa\"\u003e\u003ccode\u003e9653034\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6f9a102faf071dbfa812a3af88d7d309d2ded4a6\"\u003e\u003ccode\u003e6f9a102\u003c/code\u003e\u003c/a\u003e ⬆ Bump cryptography from 46.0.5 to 46.0.7 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15314\"\u003e#15314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/eba8942c81dbf990d25fbae34e6601bdbc21e74b\"\u003e\u003ccode\u003eeba8942\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/77d080caf850b8af5c0f467389edf03c057c7697\"\u003e\u003ccode\u003e77d080c\u003c/code\u003e\u003c/a\u003e ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15309\"\u003e#15309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.136.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastmcp` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.4: Patch Me If You Can\u003c/h2\u003e\n\u003cp\u003eA grab bag of fixes, hardening, and polish.\u003c/p\u003e\n\u003cp\u003eThe headline behavior change: background tasks are now scoped to the authorization context rather than the MCP session, so a task kicked off by an authenticated user survives session churn and stays tied to who started it. This is a breaking change for anyone relying on the old session-scoped semantics.\u003c/p\u003e\n\u003cp\u003eSecurity got three meaningful upgrades. \u003ccode\u003eFileUpload\u003c/code\u003e now validates actual decoded base64 size instead of trusting the client-reported number, so an attacker can't claim \u0026quot;10 bytes\u0026quot; and deliver 10MB. The proxy client stops forwarding inbound HTTP headers to unrelated remote servers — previously a header meant for server A could leak to server B. And AuthKit now auto-binds token audience to the resource URL per RFC 8707, closing a token-reuse gap across MCP resources.\u003c/p\u003e\n\u003cp\u003eSchema handling had a rough-edges pass. \u003ccode\u003ejson_schema_to_type\u003c/code\u003e no longer crashes on Python keywords, boolean schemas, empty enums, or name collisions, and we added a 232K-schema crash test from APIs.guru to keep it honest. Gemini 2.5 Flash compatibility is fixed by stripping \u003ccode\u003etitle\u003c/code\u003e fields the model rejects. Parameter descriptions are now extracted from docstrings automatically, so your tool signatures document themselves.\u003c/p\u003e\n\u003cp\u003ePlus a Keycloak OAuth provider for enterprise auth, improvements to \u003ccode\u003ectx.elicit()\u003c/code\u003e (new \u003ccode\u003eresponse_title\u003c/code\u003e/\u003ccode\u003eresponse_description\u003c/code\u003e, deprecation warning when called without \u003ccode\u003eresponse_type\u003c/code\u003e), and dozens of smaller fixes across transforms, retry middleware, resource templates, and client disconnect handling.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScope tasks to authorization context, not session by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3800\"\u003ePrefectHQ/fastmcp#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydocket\u0026gt;=0.19.0, drop fakeredis pin by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3822\"\u003ePrefectHQ/fastmcp#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd real-world schema crash test (232K schemas from APIs.guru) by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3826\"\u003ePrefectHQ/fastmcp#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 7 zero-violation ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3841\"\u003ePrefectHQ/fastmcp#3841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePromote 7 ty rules from ignore to warn by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3852\"\u003ePrefectHQ/fastmcp#3852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace ___ with hash-based backend tool routing and per-tool prefab resources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3824\"\u003ePrefectHQ/fastmcp#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 4 ruff rules (DTZ, ERA, ISC, INP) and fix 9 violations by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3842\"\u003ePrefectHQ/fastmcp#3842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract parameter descriptions from docstrings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3872\"\u003ePrefectHQ/fastmcp#3872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up schema crash test (CSafeLoader + xdist-safe aggregation) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3873\"\u003ePrefectHQ/fastmcp#3873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: bump OpenAPI init perf threshold to 200ms for Windows CI by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3879\"\u003ePrefectHQ/fastmcp#3879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: unify object-schema conversion through _object_schema_to_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3884\"\u003ePrefectHQ/fastmcp#3884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Keycloak OAuth Provider for Enterprise Authentication and local dev by \u003ca href=\"https://github.com/stephaneberle9\"\u003e\u003ccode\u003e@​stephaneberle9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1937\"\u003ePrefectHQ/fastmcp#1937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow auth providers to override protected resource base URLs by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3900\"\u003ePrefectHQ/fastmcp#3900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable PERF and T20 ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3845\"\u003ePrefectHQ/fastmcp#3845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd response_title and response_description to ctx.elicit() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3912\"\u003ePrefectHQ/fastmcp#3912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate ctx.elicit() without response_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3916\"\u003ePrefectHQ/fastmcp#3916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity 🔒\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate actual base64 data size in FileUpload, not client-reported size by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3816\"\u003ePrefectHQ/fastmcp#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop forwarding inbound HTTP headers to unrelated remote servers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3837\"\u003ePrefectHQ/fastmcp#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuthKit: auto-bind token audience to resource URL (RFC 8707) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3905\"\u003ePrefectHQ/fastmcp#3905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersion-check is_docket_available() to avoid transitive pydocket crash by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3807\"\u003ePrefectHQ/fastmcp#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: materialize generators before result conversion, handle bytes gracefully by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3830\"\u003ePrefectHQ/fastmcp#3830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix json_schema_to_type crashes on keywords, boolean schemas, empty enums, and name collisions by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3818\"\u003ePrefectHQ/fastmcp#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace \u003ccode\u003eor\u003c/code\u003e with \u003ccode\u003eis not None\u003c/code\u003e checks for config/override merging by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3833\"\u003ePrefectHQ/fastmcp#3833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: TransformedTool sync fn crash and schema mutation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3823\"\u003ePrefectHQ/fastmcp#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cross-provider duplicate detection, error visibility, mask propagation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3827\"\u003ePrefectHQ/fastmcp#3827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't pass HTTP kwargs when transport is unspecified by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3838\"\u003ePrefectHQ/fastmcp#3838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip title fields from tool schemas for Gemini 2.5 Flash compatibility by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3861\"\u003ePrefectHQ/fastmcp#3861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: retry when LLM returns text instead of calling final_response by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3850\"\u003ePrefectHQ/fastmcp#3850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on unhandled content types in sampling handler dispatch chains by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3857\"\u003ePrefectHQ/fastmcp#3857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken code examples in docs by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3869\"\u003ePrefectHQ/fastmcp#3869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: GoogleGenaiSamplingHandler leaks thought parts and gives unhelpful errors on empty responses by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3849\"\u003ePrefectHQ/fastmcp#3849\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/PrefectHQ/fastmcp/commit/7d7607473d7713d9937cbbbe0bfc635976c511d3\"\u003e\u003ccode\u003e7d76074\u003c/code\u003e\u003c/a\u003e Stop pydantic 2.13 from leaking _WrappedResult docstring into tool output sch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/b732a4a516e4a41f053e46dbd86e9520cf5178bf\"\u003e\u003ccode\u003eb732a4a\u003c/code\u003e\u003c/a\u003e Overhaul apps docs (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/5c2ff1bd7b9844a3891149741de56a5e4d24621d\"\u003e\u003ccode\u003e5c2ff1b\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f4f2ec07fbb611a25ce27e1b4f9b67f54bc2420a\"\u003e\u003ccode\u003ef4f2ec0\u003c/code\u003e\u003c/a\u003e Deprecate ctx.elicit() without response_type (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/338b80c3ae3b8c5ac3a7e094178c9f34eb286ea8\"\u003e\u003ccode\u003e338b80c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/110cd3adcb7a433923ed8ed4a8b23d076a313ab5\"\u003e\u003ccode\u003e110cd3a\u003c/code\u003e\u003c/a\u003e Add response_title and response_description to ctx.elicit() (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/311784617639d7b46490d863f2e4bb24be6361c5\"\u003e\u003ccode\u003e3117846\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/031c7e03b48330345bc4d1f82a9cc78ed269b07c\"\u003e\u003ccode\u003e031c7e0\u003c/code\u003e\u003c/a\u003e Fix RetryMiddleware not retrying tool errors (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3858\"\u003e#3858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/200d79e7d28f36b36c271621d9550aa3fb3c0aa7\"\u003e\u003ccode\u003e200d79e\u003c/code\u003e\u003c/a\u003e Enable PERF and T20 ruff rules (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/82f310fe61dba25de34f2be3e203555ccfc4181d\"\u003e\u003ccode\u003e82f310f\u003c/code\u003e\u003c/a\u003e AuthKit: auto-bind token audience to resource URL (RFC 8707) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3905\"\u003e#3905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\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/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.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/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.5 to 7.0.6\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\u003ev7.0.6 (2026-04-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate project URLs.\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/28d4506f2a49d781ffbcecb095fa7aba5bb80aff\"\u003e\u003ccode\u003e28d4506\u003c/code\u003e\u003c/a\u003e Release v7.0.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51921a4812b3304be9625ed004f024935a8036af\"\u003e\u003ccode\u003e51921a4\u003c/code\u003e\u003c/a\u003e Remove _TimedCache default timer to simplify type stubs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a4249f6aa3b4cb2fe287b08631c308bb88b9396c\"\u003e\u003ccode\u003ea4249f6\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.5.2 to 6.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/aa87283858f09b6820103373b7623d4ef51d233f\"\u003e\u003ccode\u003eaa87283\u003c/code\u003e\u003c/a\u003e feat: update project URLs in pyproject.toml to show on pypi.org (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.5...v7.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.6.0 to 6.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.7.0] - 2026-04-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. S...\n\n_Description has been truncated_","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5296/packages"},{"uuid":"4264379416","node_id":"PR_kwDOSCt5OM7Sa7pO","number":2,"state":"open","title":"build(deps): Bump the minor-and-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-14T19:49:37.000Z","updated_at":"2026-04-14T22:17:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"minor-and-patch","update_count":6,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"beautifulsoup4","old_version":"4.12.3","new_version":"4.14.3"},{"name":"selenium","old_version":"4.16.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"schedule","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/dbader/schedule"},{"name":"python-jobspy","old_version":"1.1.75","new_version":"1.1.82","repository_url":"https://github.com/cullenwatson/JobSpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.12.3` | `4.14.3` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.16.0` | `4.43.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [schedule](https://github.com/dbader/schedule) | `1.2.1` | `1.2.2` |\n| [python-jobspy](https://github.com/cullenwatson/JobSpy) | `1.1.75` | `1.1.82` |\n\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.12.3 to 4.14.3\n\nUpdates `selenium` from 4.16.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.16.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.0 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `schedule` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbader/schedule/blob/master/HISTORY.rst\"\u003eschedule's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.2 (2024-05-25)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix bugs in cross-timezone scheduling (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/601\"\u003e#601\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/602\"\u003e#602\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/604\"\u003e#604\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on old mock (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/622\"\u003e#622\u003c/a\u003e) Thanks \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/82a43db1b938d8fdf60103bd41f329e06c8d3651\"\u003e\u003ccode\u003e82a43db\u003c/code\u003e\u003c/a\u003e Release 1.2.2 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/625\"\u003e#625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/2dcb5833cdf2b7d7a1bda90c19e2fb7e373e66df\"\u003e\u003ccode\u003e2dcb583\u003c/code\u003e\u003c/a\u003e Timezone bugfixes (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/4386f4562df3ed24fd198324e279d215db2154d6\"\u003e\u003ccode\u003e4386f45\u003c/code\u003e\u003c/a\u003e remove dependency on old mock (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/1173f2820b6e996fd80c51e61353a31a4c260b3b\"\u003e\u003ccode\u003e1173f28\u003c/code\u003e\u003c/a\u003e Add support for 3.12 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/a38862005fb775521d5482e5be4affcd10eebb15\"\u003e\u003ccode\u003ea388620\u003c/code\u003e\u003c/a\u003e Improved timezones handling in next_run (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/073dbc6e5f8254d27c656f88a5062cca2cdfc4a2\"\u003e\u003ccode\u003e073dbc6\u003c/code\u003e\u003c/a\u003e Add more timezone tests (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/2984ec925bb4d40a68ee3d697739149fa677f475\"\u003e\u003ccode\u003e2984ec9\u003c/code\u003e\u003c/a\u003e Fix docs, added pytz as dependency when working with timezones (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/dbader/schedule/compare/1.2.1...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-jobspy` from 1.1.75 to 1.1.82\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cullenwatson/JobSpy/releases\"\u003epython-jobspy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.79\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNaukri support - India's top job board\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ethanks \u003ca href=\"https://github.com/lijuuu\"\u003e\u003ccode\u003e@​lijuuu\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.77\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efetch jobs from \u003ca href=\"https://www.bayt.com/\"\u003eBayt.com: The Middle East's Leading Job Site\u003c/a\u003e. Currently just supports the search_term parameter and searches internationally\u003c/li\u003e\n\u003cli\u003eremoved logs by default. do verbose=2 to show\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ethanks \u003ca href=\"https://github.com/aHishamm\"\u003e\u003ccode\u003e@​aHishamm\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/abd587823831605a646a355a05d25b48a07e0865\"\u003e\u003ccode\u003eabd5878\u003c/code\u003e\u003c/a\u003e chore:readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/ae2b1ea42c46fbf069be30d26c46b48e478e709d\"\u003e\u003ccode\u003eae2b1ea\u003c/code\u003e\u003c/a\u003e Bdjobs Fixed (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/53b3b413855d3656bbbcef52531c5699506b2f19\"\u003e\u003ccode\u003e53b3b41\u003c/code\u003e\u003c/a\u003e fix: glassdoor ua\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/9aae02453da3340440e4e4d96c7789466db65c51\"\u003e\u003ccode\u003e9aae024\u003c/code\u003e\u003c/a\u003e issue#270: glassdoor 403 response by rotating user-agent and updating headers...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/94d413bad112107f3a51ad5facaf8c74d30f5cdb\"\u003e\u003ccode\u003e94d413b\u003c/code\u003e\u003c/a\u003e support for socks5 proxies (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/61205bcc77fd26e43ed538272e36199205cf39e5\"\u003e\u003ccode\u003e61205bc\u003c/code\u003e\u003c/a\u003e chore: version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/f1602eca70378ea840c712fedcf6555d4d30325a\"\u003e\u003ccode\u003ef1602ec\u003c/code\u003e\u003c/a\u003e Fix date parsing error: prevent negative days by using timedelta (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/d4d52d05f59029e1295ba569a494a4ce851b259f\"\u003e\u003ccode\u003ed4d52d0\u003c/code\u003e\u003c/a\u003e chore:version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/0946cb33735170aa156d4380acbd2246ca61277f\"\u003e\u003ccode\u003e0946cb3\u003c/code\u003e\u003c/a\u003e feat: add naukri.com support (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/051981689fc4fc7a18bdfa806b1727fe90066aef\"\u003e\u003ccode\u003e0519816\u003c/code\u003e\u003c/a\u003e Update util.py (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cullenwatson/JobSpy/compare/1.1.75...1.1.82\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tchoungageslin-blip/Joby/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchoungageslin-blip%2FJoby/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"},{"uuid":"4260108102","node_id":"PR_kwDOPVEyVc7SOKtf","number":161,"state":"closed","title":"Bump the python group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-15T07:04:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T07:05:23.000Z","updated_at":"2026-04-15T07:04:26.000Z","time_to_close":86341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":8,"packages":[{"name":"authlib","old_version":"1.6.9","new_version":"1.6.10","repository_url":"https://github.com/authlib/authlib"},{"name":"django-allauth","old_version":"65.15.1","new_version":"65.16.0"},{"name":"lxml","old_version":"6.0.2","new_version":"6.0.4","repository_url":"https://github.com/lxml/lxml"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [authlib](https://github.com/authlib/authlib) | `1.6.9` | `1.6.10` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.15.1` | `65.16.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.2` | `6.0.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.58.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n\n\nUpdates `authlib` from 1.6.9 to 1.6.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.10\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eUnsupportedResponseTypeError\u003c/code\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/authlib/authlib/blob/v1.6.10/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.10\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Apr 13, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eUnsupportedResponseTypeError\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/authlib/authlib/commit/ef09aebbba4439dedb22bd15777d1b3458b6f0ab\"\u003e\u003ccode\u003eef09aeb\u003c/code\u003e\u003c/a\u003e chore: release 1.6.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/3be08468201a7766a93012ce149ea12822cab096\"\u003e\u003ccode\u003e3be0846\u003c/code\u003e\u003c/a\u003e fix: redirecting to unvalidated redirect_uri on UnsupportedResponseTypeError\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.15.1 to 65.16.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 `lxml` from 6.0.2 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.4 (2026-04-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2148019: Spurious MemoryError during namespace cleanup.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.0.3 (2026-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral out of memory error cases now raise \u003ccode\u003eMemoryError\u003c/code\u003e that were not handled before.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSlicing with large step values (outside of \u003ccode\u003e+/- sys.maxsize\u003c/code\u003e) could trigger undefined C behaviour.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125399: Some failing tests were fixed or disabled in PyPy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2138421: Memory leak in error cases when setting the \u003ccode\u003epublic_id\u003c/code\u003e or \u003ccode\u003esystem_url\u003c/code\u003e of a document.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMemory leak in case of a memory allocation failure when copying document subtrees.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen mapping an XPath result to Python failed, the result memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen preparing an XSLT transform failed, the XSLT parameter memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.2.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use zlib 1.3.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/1fd1d6bc300bcd9a41def810c5fc3223811b579e\"\u003e\u003ccode\u003e1fd1d6b\u003c/code\u003e\u003c/a\u003e Fix release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/515485906ccdd89b61088e390f65f39e4c205158\"\u003e\u003ccode\u003e5154859\u003c/code\u003e\u003c/a\u003e CI: Include all library versions in libs cache key to asssure updated on vers...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6a606f32724060fe0465cd38d6fb7e6e22e7ef81\"\u003e\u003ccode\u003e6a606f3\u003c/code\u003e\u003c/a\u003e Add \u0026quot;doesn't crash\u0026quot; tests for LP#2148019.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/f488f16d20014c0dfde59cd2930b41604bcc3c8d\"\u003e\u003ccode\u003ef488f16\u003c/code\u003e\u003c/a\u003e Prepare release of 6.0.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/1255d98f168672639c46cb6419a97e31026e8086\"\u003e\u003ccode\u003e1255d98\u003c/code\u003e\u003c/a\u003e LP#2148019: Prevent spurious MemoryError during namespace cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/03b0c4aa1aded486f2e4a04cf5c329524df73c57\"\u003e\u003ccode\u003e03b0c4a\u003c/code\u003e\u003c/a\u003e Remove dead type check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a6f833c7e187c17d5087d29227e066d94490280f\"\u003e\u003ccode\u003ea6f833c\u003c/code\u003e\u003c/a\u003e Fix release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/973d059449a66799f468b46f4b12c95e32cff5e9\"\u003e\u003ccode\u003e973d059\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9044a52ce26a3ccf48b6cad8031234a0ddf7612b\"\u003e\u003ccode\u003e9044a52\u003c/code\u003e\u003c/a\u003e Build: Downgrade libiconv to 1.18 since 1.19 does not build reliably.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a34dfdd593368fc444f6b66d03fd60d76966c9d2\"\u003e\u003ccode\u003ea34dfdd\u003c/code\u003e\u003c/a\u003e Build: Upgrade libiconv to 1.19.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.57.0 to 2.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/commit/ce445d96977ec083b97495c917aa0c3ce453689d\"\u003e\u003ccode\u003ece445d9\u003c/code\u003e\u003c/a\u003e release: 2.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c0e9cfc8536f0d9ba22925e4bea17034138cd0\"\u003e\u003ccode\u003ec0c0e9c\u003c/code\u003e\u003c/a\u003e feat(litellm): Add async callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5969\"\u003e#5969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ea74b63881d2cf1d71130a8b6ef4dfff4e4cd337\"\u003e\u003ccode\u003eea74b63\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5975\"\u003e#5975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/06ed1bca2f9302055ba43dc058f5afcc731b8d79\"\u003e\u003ccode\u003e06ed1bc\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66ef2e6976a1ae86e97aca08cbc806f9e579f324\"\u003e\u003ccode\u003e66ef2e6\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming `completion()...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/96ebbf67d91146ebb30be6e0898a637ea6c2c697\"\u003e\u003ccode\u003e96ebbf6\u003c/code\u003e\u003c/a\u003e fix(litellm): Avoid double span exits when streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e22b5dc3447a5bee71574a5c22934e5aa8a7642\"\u003e\u003ccode\u003e7e22b5d\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 8.0.0 to 9.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5979\"\u003e#5979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35151a90a98affa0d72f7cb8b314a8fb54ac8b51\"\u003e\u003ccode\u003e35151a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5980\"\u003e#5980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d1c5b53096e76353e2aa3ffdd8a845f38bb04bb6\"\u003e\u003ccode\u003ed1c5b53\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5981\"\u003e#5981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e255aafa913955eed43333aa204f1476d9dc1ff2\"\u003e\u003ccode\u003ee255aaf\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 6b1f51ec8af03e19...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.57.0...2.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/danielmcquillen/validibot/pull/161","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmcquillen%2Fvalidibot/issues/161","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/161/packages"},{"uuid":"4257946385","node_id":"PR_kwDOQYTN0c7SHuMI","number":5281,"state":"closed","title":"deps(python): bump the python-minor group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T22:16:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:17:16.000Z","updated_at":"2026-04-20T22:16:18.000Z","time_to_close":608341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":7,"packages":[{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.3","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.94.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.94.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\nUpdates `fastmcp` from 3.2.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.3: Redis or Not\u003c/h2\u003e\n\u003cp\u003efakeredis 2.35.0 shipped an undocumented rename (\u003ccode\u003eFakeConnection\u003c/code\u003e → \u003ccode\u003eFakeAsyncRedisConnection\u003c/code\u003e) that broke pydocket's \u003ccode\u003ememory://\u003c/code\u003e backend, causing \u003ccode\u003efastmcp[tasks]\u003c/code\u003e installs to fail at startup with an \u003ccode\u003eImportError\u003c/code\u003e. This pins \u003ccode\u003efakeredis\u0026lt;2.35.0\u003c/code\u003e in the \u003ccode\u003etasks\u003c/code\u003e extra as a stopgap until a fixed pydocket ships.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin fakeredis\u0026lt;2.35.0 in tasks extra by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3804\"\u003ePrefectHQ/fastmcp#3804\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument session state isolation across mount boundaries by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3801\"\u003ePrefectHQ/fastmcp#3801\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.2...v3.2.3\"\u003ehttps://github.com/PrefectHQ/fastmcp/compare/v3.2.2...v3.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.2: Audience Appreciation\u003c/h2\u003e\n\u003cp\u003eThe Azure audience fix in 3.2.1 overcorrected: it switched token validation from \u003ccode\u003eclient_id\u003c/code\u003e to \u003ccode\u003eidentifier_uri\u003c/code\u003e, which fixed custom Application ID URIs but broke the default case where Azure AD v2 tokens set \u003ccode\u003eaud\u003c/code\u003e to the bare client ID GUID. Both formats are now accepted.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: accept both client_id and identifier_uri as Azure audience by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3797\"\u003ePrefectHQ/fastmcp#3797\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies 📦\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the uv group across 2 directories with 1 update 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/PrefectHQ/fastmcp/pull/3795\"\u003ePrefectHQ/fastmcp#3795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.1...v3.2.2\"\u003ehttps://github.com/PrefectHQ/fastmcp/compare/v3.2.1...v3.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1: Audience Participation\u003c/h2\u003e\n\u003cp\u003eMost of the fixes in this patch are about auth providers getting audience validation wrong. Cognito token verification was checking the \u003ccode\u003eaud\u003c/code\u003e JWT claim, but Cognito access tokens don't include one; they use \u003ccode\u003eclient_id\u003c/code\u003e instead. Azure was hardcoding the raw client ID as the expected audience, ignoring the \u003ccode\u003eidentifier_uri\u003c/code\u003e parameter even though Entra v2.0 tokens use the Application ID URI as \u003ccode\u003eaud\u003c/code\u003e. Both now validate correctly without changing the provider API. Consent cookies also had an unbounded growth problem in high-DCR-client environments, eventually blowing past reverse proxy header limits; they're now capped as an LRU.\u003c/p\u003e\n\u003cp\u003eOn the OpenAPI side, \u003ccode\u003enullable: true\u003c/code\u003e fields from 3.0 specs were leaking into tool input schemas as-is instead of being converted to JSON Schema's \u003ccode\u003etype: [\u0026quot;string\u0026quot;, \u0026quot;null\u0026quot;]\u003c/code\u003e. Server variable templates in base URLs (like \u003ccode\u003ehttps://{region}.api.example.com\u003c/code\u003e) were also being passed through raw instead of substituted with their defaults.\u003c/p\u003e\n\u003cp\u003eSmaller fixes: form submissions from Prefab UI now correctly handle unchecked boolean checkboxes, the client no longer crashes on error responses with empty or non-text content from third-party servers, and \u003ccode\u003easyncio.iscoroutinefunction\u003c/code\u003e no longer emits deprecation warnings on Python 3.14.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(google): use sub (user ID) for client_id instead of aud (app ID) by \u003ca href=\"https://github.com/shigechika\"\u003e\u003ccode\u003e@​shigechika\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3722\"\u003ePrefectHQ/fastmcp#3722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove CSP from tool metadata, keep on resource only by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3754\"\u003ePrefectHQ/fastmcp#3754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[codex] Add FastMCP docs telemetry by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3727\"\u003ePrefectHQ/fastmcp#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: split SDK navigation into standalone $ref file by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3773\"\u003ePrefectHQ/fastmcp#3773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bump ty to \u0026gt;=0.0.29 and suppress new false positives by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3790\"\u003ePrefectHQ/fastmcp#3790\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: use explicit None checks for JWT exp validation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3724\"\u003ePrefectHQ/fastmcp#3724\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/PrefectHQ/fastmcp/commit/d1adb041eab26ee2d4b837c0a13bebe9af7f6fc7\"\u003e\u003ccode\u003ed1adb04\u003c/code\u003e\u003c/a\u003e Pin fakeredis\u0026lt;2.35.0 in tasks extra (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/0194c6e8ea905b1799cafe2d063dae1e461acf5f\"\u003e\u003ccode\u003e0194c6e\u003c/code\u003e\u003c/a\u003e Document session state isolation across mount boundaries (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3801\"\u003e#3801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6592aaa70e979aab0112165ed922ce92f03adaf8\"\u003e\u003ccode\u003e6592aaa\u003c/code\u003e\u003c/a\u003e fix: accept both client_id and identifier_uri as Azure audience (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3797\"\u003e#3797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/9f0d8d3d125cce605227913baa62f34468361e71\"\u003e\u003ccode\u003e9f0d8d3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3795\"\u003e#3795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/556fd8fa42707774ce92899ba2049d8012035953\"\u003e\u003ccode\u003e556fd8f\u003c/code\u003e\u003c/a\u003e Harden client tool result error handling (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/e064ba69de0d454416dc000fd7fa2c95efe00709\"\u003e\u003ccode\u003ee064ba6\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3791\"\u003e#3791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/a3c5cc12d3daf7d65f824f2b8a7c553b96b98243\"\u003e\u003ccode\u003ea3c5cc1\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f5be772403011c8518b78789a26eeab714d7fcee\"\u003e\u003ccode\u003ef5be772\u003c/code\u003e\u003c/a\u003e fix: bump ty to \u0026gt;=0.0.29 and suppress new false positives (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3790\"\u003e#3790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f14456d63af321f6c30e034a89ea441385970c80\"\u003e\u003ccode\u003ef14456d\u003c/code\u003e\u003c/a\u003e docs: document forward_resource parameter on OAuthProxy (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/2b9d3eee0f93931deb031f424bef193e98f27204\"\u003e\u003ccode\u003e2b9d3ee\u003c/code\u003e\u003c/a\u003e fix: use identifier_uri as audience for Azure token validation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.94.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.93.0\u003c/h2\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.92.0\u003c/h2\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\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/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\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/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/42ee3dab539d6346505bae13745d34fe91c1946e\"\u003e\u003ccode\u003e42ee3da\u003c/code\u003e\u003c/a\u003e docs: update examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c8a8c9ec660108666baf96acd4aab08d41027af\"\u003e\u003ccode\u003e0c8a8c9\u003c/code\u003e\u003c/a\u003e fix: ensure file data are only sent as 1 parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9092064e862fe03afbca1740cbc21d20edcb4984\"\u003e\u003ccode\u003e9092064\u003c/code\u003e\u003c/a\u003e feat: vertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/25b6c31ca04c107c9b31d61e13ad69a1598ff65f\"\u003e\u003ccode\u003e25b6c31\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/717f90bf95b0dd3e1fefb2df06c022f16a03ee96\"\u003e\u003ccode\u003e717f90b\u003c/code\u003e\u003c/a\u003e release: 0.93.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c10155947d844c7545b533bb62748e4381d5d7c5\"\u003e\u003ccode\u003ec101559\u003c/code\u003e\u003c/a\u003e feat(api): Add beta advisor tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5a290a8defab65e68d240116cbefa85987253946\"\u003e\u003ccode\u003e5a290a8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.94.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.6.0 to 6.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.7.0] - 2026-04-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1a2065a6ac1eabf8c3125bcb735fbc04d7cd8441\"\u003e\u003ccode\u003e1a2065a\u003c/code\u003e\u003c/a\u003e Add missing attributions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/8422e175d40bb24277c2ab65db91fab2e2c60c20\"\u003e\u003ccode\u003e8422e17\u003c/code\u003e\u003c/a\u003e Add missing octothorpes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/fa9116fd56cff6377a40c76b77b538fbe4931751\"\u003e\u003ccode\u003efa9116f\u003c/code\u003e\u003c/a\u003e Update Jupyter Lab extension files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/c771ad5c15d0b0773171d212d1b79836616076f1\"\u003e\u003ccode\u003ec771ad5\u003c/code\u003e\u003c/a\u003e Version changes for v6.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/067b95421c00a03023b43b6faca8112652b26379\"\u003e\u003ccode\u003e067b954\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5565\"\u003e#5565\u003c/a\u003e from plotly/cam/update-plotly.js-v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1b7de492ead91eb28bfa3bd9208078ff453a1657\"\u003e\u003ccode\u003e1b7de49\u003c/code\u003e\u003c/a\u003e Update Jupyter support files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/d605d3e9978928d111b3e2b5a10c70810b44a10d\"\u003e\u003ccode\u003ed605d3e\u003c/code\u003e\u003c/a\u003e chore: Update plotly.js to v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/600f86527341bc5f1809725e2831d846c3e054b4\"\u003e\u003ccode\u003e600f865\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5541\"\u003e#5541\u003c/a\u003e from plotly/migrate-to-gh-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/10c7c5611ca04639313674cca3814f742cac523d\"\u003e\u003ccode\u003e10c7c56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5518\"\u003e#5518\u003c/a\u003e from mosh3eb/fix/broken-license-link-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ea813dd062be4918dc35944fc62226d809e9fc65\"\u003e\u003ccode\u003eea813dd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix/broken-license-link-readme\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.6.0...v6.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5281/packages"},{"uuid":"4250849765","node_id":"PR_kwDOB1SzD87R2VV6","number":349,"state":"open","title":"Bump selenium from 4.42.0 to 4.43.0 in the pip-all group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:25:06.000Z","updated_at":"2026-04-13T02:25:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.42.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"the pip-all group","ecosystem":"pip"},"body":"Bumps the pip-all group with 1 update: [selenium](https://github.com/SeleniumHQ/Selenium).\n\nUpdates `selenium` from 4.42.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.42.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/rodlukas/UP-admin/pull/349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlukas%2FUP-admin/issues/349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/349/packages"},{"uuid":"4250738089","node_id":"PR_kwDOKbD_GM7R2ET6","number":87,"state":"closed","title":"Bump selenium from 4.34.0 to 4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T02:14:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T01:53:33.000Z","updated_at":"2026-05-18T02:14:53.000Z","time_to_close":3025278,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.34.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.34.0 to 4.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.34.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.34.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/RAHB-REALTORS-Association/selenium-screenshots/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RAHB-REALTORS-Association%2Fselenium-screenshots/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"},{"uuid":"4250385202","node_id":"PR_kwDOIQ0O_s7R1Sef","number":1477,"state":"closed","title":"Bump selenium from 4.5.0 to 4.43.0 in /tools","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-13T01:27:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T00:06:07.000Z","updated_at":"2026-05-13T01:27:01.000Z","time_to_close":2596853,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.5.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"/tools","ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.5.0 to 4.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.5.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.5.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/William3Johnson/wpt/pull/1477","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/William3Johnson%2Fwpt/issues/1477","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1477/packages"}],"issue_packages":[{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":null,"pr_created_at":"2026-06-15T02:24:18.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4661557616","node_id":"PR_kwDOPUOpW87mWqfz","number":8783,"state":"open","title":"chore(deps): bump selenium from 4.43.0 to 4.44.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-15T02:24:18.000Z","updated_at":"2026-06-15T02:25:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.43.0 to 4.44.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.43.0\u0026new-version=4.44.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/arthexis/arthexis/pull/8783","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthexis%2Farthexis/issues/8783","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8783/packages"}},{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":null,"pr_created_at":"2026-05-17T18:34:25.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4464546439","node_id":"PR_kwDOSGfDCM7cbEqp","number":140,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["Review effort 1/5"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-17T18:34:25.000Z","updated_at":"2026-05-17T18:35:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":5,"packages":[{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"click","old_version":"8.3.3","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"black","old_version":"26.3.1","new_version":"26.5.0","repository_url":"https://github.com/psf/black"}],"path":null,"ecosystem":"pip"},"body":"### **User description**\nBumps the python-minor-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.43.0` | `4.44.0` |\n| [click](https://github.com/pallets/click) | `8.3.3` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.0` |\n\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.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.3.3 to 8.4.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.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.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.4.0/\"\u003ehttps://pypi.org/project/click/8.4.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParamType\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3371\"\u003e#3371\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3372\"\u003e#3372\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParameter\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2805\"\u003e#2805\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2745\"\u003e#2745\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3364\"\u003e#3364\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2012\"\u003e#2012\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3363\"\u003e#3363\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses \u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to pick\nnon-shadowed help option names, so \u003ccode\u003eTry '... -h'\u003c/code\u003e no longer points to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are shown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/2790\"\u003e#2790\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3208\"\u003e#3208\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is now\npassed directly to readline instead of being printed separately, allowing\nproper backspace, line editing, and line wrapping behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2968\"\u003e#2968\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n:pr:\u003ccode\u003e3372\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e2805\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n:issue:\u003ccode\u003e2745\u003c/code\u003e :pr:\u003ccode\u003e3364\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. :issue:\u003ccode\u003e2012\u003c/code\u003e :pr:\u003ccode\u003e3363\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses :meth:\u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to pick\nnon-shadowed help option names, so \u003ccode\u003eTry '... -h'\u003c/code\u003e no longer points to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are shown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). :issue:\u003ccode\u003e2790\u003c/code\u003e :pr:\u003ccode\u003e3208\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is now\npassed directly to readline instead of being printed separately, allowing\nproper backspace, line editing, and line wrapping behavior. :issue:\u003ccode\u003e2968\u003c/code\u003e\n:pr:\u003ccode\u003e2969\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse :func:\u003ccode\u003eos.startfile\u003c/code\u003e on Windows to open URLs in :func:\u003ccode\u003eopen_url\u003c/code\u003e,\nreplacing the \u003ccode\u003estart\u003c/code\u003e built-in which cannot be invoked without\n\u003ccode\u003eshell=True\u003c/code\u003e. :issue:\u003ccode\u003e3164\u003c/code\u003e :pr:\u003ccode\u003e3186\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Fish shell completion errors when option help text contains newlines.\n:issue:\u003ccode\u003e3043\u003c/code\u003e :pr:\u003ccode\u003e3126\u003c/code\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/pallets/click/commit/41f410fb7528305d7e87c8cfa704f6c2456f57fc\"\u003e\u003ccode\u003e41f410f\u003c/code\u003e\u003c/a\u003e Release 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e3e69e3bf8d749ac1a632f2ece4d38ec7f6588f5\"\u003e\u003ccode\u003ee3e69e3\u003c/code\u003e\u003c/a\u003e Add type annotations for instance attributes in \u003ccode\u003eutils\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3422\"\u003e#3422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3bb230dcd5d751f8605b46e9df5a541639d5fd4e\"\u003e\u003ccode\u003e3bb230d\u003c/code\u003e\u003c/a\u003e WIP: Fix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious characters (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/63274a79d08fdc5c19220696144489f7144a8547\"\u003e\u003ccode\u003e63274a7\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eclick.get_pager_file\u003c/code\u003e: add tests (\u003ca href=\"https://redirect.github.com/pallets/click/issues/1572\"\u003e#1572\u003c/a\u003e followup) (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3405\"\u003e#3405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0551bf53588ae87f462d336f24f853a156fefe3a\"\u003e\u003ccode\u003e0551bf5\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fc41aa1d0b62494eb93e92ff3929601221e3abf4\"\u003e\u003ccode\u003efc41aa1\u003c/code\u003e\u003c/a\u003e Apply class-body annotations to \u003ccode\u003eKeepOpenFile\u003c/code\u003e for consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b761eda3bad977ec2f485451d85fd8ec365f0bf4\"\u003e\u003ccode\u003eb761eda\u003c/code\u003e\u003c/a\u003e Skip some tests on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/98302ac4f49e443a48abd3fbb95c86202b89547d\"\u003e\u003ccode\u003e98302ac\u003c/code\u003e\u003c/a\u003e Check \u003ccode\u003ePAGER\u003c/code\u003e usage, color preservation and edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dbdae170879d460e78963f8af35c5cb9c5b86e89\"\u003e\u003ccode\u003edbdae17\u003c/code\u003e\u003c/a\u003e Fix documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1aa2d53d63ff68bf14b35931177aac9270e39713\"\u003e\u003ccode\u003e1aa2d53\u003c/code\u003e\u003c/a\u003e Redesigned tests and get_pager_file branching to be more clear and not set color\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.3...8.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/aef52e00c618f8203548fa6d1512eb49bf60f411\"\u003e\u003ccode\u003eaef52e0\u003c/code\u003e\u003c/a\u003e Improve fmt:skip handling in nested expressions with checks (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9e8749525bf91d5a78f2bf5534f8efaefab80b92\"\u003e\u003ccode\u003e9e87495\u003c/code\u003e\u003c/a\u003e Add CI coverage for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9fd9ea2835973981e3f5dc5b8eb76f2ded46aa61\"\u003e\u003ccode\u003e9fd9ea2\u003c/code\u003e\u003c/a\u003e Fix blackd error handling: split SourceASTParseError from ASTSafetyError (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/866c350cec7edd999ef55a0edb7b2202aa917f15\"\u003e\u003ccode\u003e866c350\u003c/code\u003e\u003c/a\u003e Bump docutils, sphinx, myst-parser (\u003ca href=\"https://redirect.github.com/psf/black/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05b4d1e647a20c9242a3cc095e3a19a984ef4123\"\u003e\u003ccode\u003e05b4d1e\u003c/code\u003e\u003c/a\u003e docs: update deprecated PEP URLs to peps.python.org (\u003ca href=\"https://redirect.github.com/psf/black/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1c25a476ddc48619332f545aa89bedc96429a33e\"\u003e\u003ccode\u003e1c25a47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/psf/black/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b0fa37ff449e679b8955c1ae0b6689abaa5025d7\"\u003e\u003ccode\u003eb0fa37f\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5109\"\u003e#5109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/530d5abba7ce2efbfe3fefffa368027274bd630a\"\u003e\u003ccode\u003e530d5ab\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5108\"\u003e#5108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e\n\n\n___\n\n### **PR Type**\nenhancement\n\n\n___\n\n### **Description**\n- 5 Python 패키지(requests, selenium, click, coverage, black)의 마이너/패치 버전 업데이트\n\n- app/requirements.txt: requests, selenium, click, coverage, black 업데이트\n\n- collector/requirements.txt: requests, selenium 업데이트\n\n- 프로젝트 전체의 Python 의존성 보안 및 호환성 개선\n\n\n___\n\n### Diagram Walkthrough\n\n\n```mermaid\nflowchart LR\n  subgraph \"app/requirements.txt\"\n    A1[\"requests 2.33.1 → 2.34.2\"]\n    A2[\"selenium 4.43.0 → 4.44.0\"]\n    A3[\"click 8.3.3 → 8.4.0\"]\n    A4[\"coverage 7.13.5 → 7.14.0\"]\n    A5[\"black 26.3.1 → 26.5.0\"]\n  end\n  subgraph \"collector/requirements.txt\"\n    B1[\"requests 2.33.1 → 2.34.2\"]\n    B2[\"selenium 4.43.0 → 4.44.0\"]\n  end\n```\n\n\n\n\u003cdetails\u003e \u003csummary\u003e\u003ch3\u003e File Walkthrough\u003c/h3\u003e\u003c/summary\u003e\n\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e\u003c/th\u003e\u003cth align=\"left\"\u003eRelevant files\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003ctable\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003e\u003cstrong\u003erequirements.txt\u003c/strong\u003e\u003cdd\u003e\u003ccode\u003e앱 의존성 5개 패키지 마이너/패치 업데이트\u003c/code\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/dd\u003e\u003c/summary\u003e\n\u003chr\u003e\n\napp/requirements.txt\n\n\u003cul\u003e\u003cli\u003erequests 2.33.1 → 2.34.2 버전 업데이트\u003cbr\u003e \u003cli\u003e selenium 4.43.0 → 4.44.0 버전 업데이트\u003cbr\u003e \u003cli\u003e click 8.3.3 → 8.4.0 버전 업데이트\u003cbr\u003e \u003cli\u003e coverage 7.13.5 → 7.14.0 버전 업데이트\u003cbr\u003e \u003cli\u003e black 26.3.1 → 26.5.0 버전 업데이트\u003c/ul\u003e\n\n\n\u003c/details\u003e\n\n\n  \u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"https://github.com/jclee941/blacklist/pull/140/files#diff-a43e2f882f43ac416efc2f4c9c187ab9071fe16b1eb1817fef32f26b144441d8\"\u003e+5/-5\u003c/a\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/td\u003e\n\n\u003c/tr\u003e\n\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003e\u003cstrong\u003erequirements.txt\u003c/strong\u003e\u003cdd\u003e\u003ccode\u003e수집기 의존성 2개 패키지 마이너/패치 업데이트\u003c/code\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/dd\u003e\u003c/summary\u003e\n\u003chr\u003e\n\ncollector/requirements.txt\n\n- requests 2.33.1 → 2.34.2 버전 업데이트\n- selenium 4.43.0 → 4.44.0 버전 업데이트\n\n\n\u003c/details\u003e\n\n\n  \u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"https://github.com/jclee941/blacklist/pull/140/files#diff-b5b1d8398b9269ce1fc6b75ffaeca45070b31ff0f8b6424f77a34f3e37d6b7a6\"\u003e+2/-2\u003c/a\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; \u003c/td\u003e\n\n\u003c/tr\u003e\n\u003c/table\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n___\n\n","html_url":"https://github.com/jclee941/blacklist/pull/140","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclee941%2Fblacklist/issues/140","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/140/packages"}},{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":null,"pr_created_at":"2026-05-16T07:29:39.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4459115687","node_id":"PR_kwDOB1SzD87cLIYU","number":388,"state":"closed","title":"Bump the pip-all group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-18T02:56:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T07:29:39.000Z","updated_at":"2026-05-18T02:56:19.000Z","time_to_close":156399,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-all","update_count":9,"packages":[{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"sentry-sdk","old_version":"2.59.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"djangorestframework-stubs","old_version":"3.16.9","new_version":"3.17.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.20.2","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"types-requests","old_version":"2.33.0.20260503","new_version":"2.33.0.20260513","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-all group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.59.0` | `2.60.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.9` | `3.17.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.1.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.43.0` | `4.44.0` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260503` | `2.33.0.20260513` |\n\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\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/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.59.0 to 2.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.60.0\u003c/h2\u003e\n\u003cp\u003eAdds a new \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e option that controls how \u003ccode\u003egen_ai\u003c/code\u003e spans are\nsent to Sentry. When set, the SDK extracts all \u003ccode\u003egen_ai\u003c/code\u003e spans out of a\ntransaction and sends them as v2 envelope items.\u003c/p\u003e\n\u003cp\u003eEnable this option if \u003ccode\u003egen_ai\u003c/code\u003e spans are being dropped because the transaction payload exceeds size limits.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn='https://\u003ca href=\"mailto:examplePublicKey@o0.ingest.sentry.io\"\u003eexamplePublicKey@o0.ingest.sentry.io\u003c/a\u003e/0',\u003cbr /\u003e\nstream_gen_ai_spans=True,\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(asyncpg) Add cursor span support via BaseCursor method patching by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6252\"\u003e#6252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Pass along the conversation ID for openai \u003ccode\u003eresponses\u003c/code\u003e calls by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6199\"\u003e#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6178\"\u003e#6178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6260\"\u003e#6260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to send GenAI spans in the new span format by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6079\"\u003e#6079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eGuard against \u003ccode\u003echoices=None\u003c/code\u003e by \u003ca href=\"https://github.com/cla7aye15I4nd\"\u003e\u003ccode\u003e@​cla7aye15I4nd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6216\"\u003e#6216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6192\"\u003e#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Responses patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6191\"\u003e#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Chat Completions patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6190\"\u003e#6190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(stdlib) Instrument response body read for chunked HTTP responses by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6202\"\u003e#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(typing) Add \u003ccode\u003e@sentry_sdk.traces.trace\u003c/code\u003e overloads to fix typing by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6236\"\u003e#6236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse proto version 2 to fix backfilled user agent and IP by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6256\"\u003e#6256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003ehttp.server\u003c/code\u003e spans are segments by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6230\"\u003e#6230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle mypy 2.0 related failures by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6218\"\u003e#6218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eDjango\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck transaction annotations on transaction events by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6251\"\u003e#6251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReload middleware on test teardown by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6249\"\u003e#6249\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.60.0\u003c/h2\u003e\n\u003cp\u003eAdds a new \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e option that controls how \u003ccode\u003egen_ai\u003c/code\u003e spans are\nsent to Sentry. When set, the SDK extracts all \u003ccode\u003egen_ai\u003c/code\u003e spans out of a\ntransaction and sends them as v2 envelope items.\u003c/p\u003e\n\u003cp\u003eEnable this option if \u003ccode\u003egen_ai\u003c/code\u003e spans are being dropped because the transaction payload exceeds size limits.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn='https://\u003ca href=\"mailto:examplePublicKey@o0.ingest.sentry.io\"\u003eexamplePublicKey@o0.ingest.sentry.io\u003c/a\u003e/0',\u003cbr /\u003e\nstream_gen_ai_spans=True,\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(asyncpg) Add cursor span support via BaseCursor method patching by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6252\"\u003e#6252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Pass along the conversation ID for openai \u003ccode\u003eresponses\u003c/code\u003e calls by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6199\"\u003e#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6178\"\u003e#6178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6260\"\u003e#6260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to send GenAI spans in the new span format by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6079\"\u003e#6079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eGuard against \u003ccode\u003echoices=None\u003c/code\u003e by \u003ca href=\"https://github.com/cla7aye15I4nd\"\u003e\u003ccode\u003e@​cla7aye15I4nd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6216\"\u003e#6216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6192\"\u003e#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Responses patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6191\"\u003e#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in Chat Completions patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6190\"\u003e#6190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(stdlib) Instrument response body read for chunked HTTP responses by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6202\"\u003e#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(typing) Add \u003ccode\u003e@sentry_sdk.traces.trace\u003c/code\u003e overloads to fix typing by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6236\"\u003e#6236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse proto version 2 to fix backfilled user agent and IP by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6256\"\u003e#6256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003ehttp.server\u003c/code\u003e spans are segments by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6230\"\u003e#6230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle mypy 2.0 related failures by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6218\"\u003e#6218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eDjango\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck transaction annotations on transaction events by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6251\"\u003e#6251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReload middleware on test teardown by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6249\"\u003e#6249\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e30caaa97793fd37b782d8c48b7727a43428fafd\"\u003e\u003ccode\u003ee30caaa\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d31ac85a92def5d6f2395fe2bfa8a9133c581323\"\u003e\u003ccode\u003ed31ac85\u003c/code\u003e\u003c/a\u003e release: 2.60.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fcb93051c5b85f28ee6dc623dd67736d430ef432\"\u003e\u003ccode\u003efcb9305\u003c/code\u003e\u003c/a\u003e feat: Remove truncation when \u003ccode\u003estream_gen_ai_spans\u003c/code\u003e is enabled (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6260\"\u003e#6260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/253a4d42b13bb5b54cb3b623a32d9fc99639b226\"\u003e\u003ccode\u003e253a4d4\u003c/code\u003e\u003c/a\u003e feat: Add option to send GenAI spans in the new span format (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6079\"\u003e#6079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/619d803d82f7bbf2a15a80432334c863e4c206eb\"\u003e\u003ccode\u003e619d803\u003c/code\u003e\u003c/a\u003e test(langchain): Inline global state (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6261\"\u003e#6261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f92c8036a8ed166ab3be8a48f6344fd98d1761dd\"\u003e\u003ccode\u003ef92c803\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;fix: Work around compromised transitive dependency (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6257\"\u003e#6257\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6262\"\u003e#6262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7a303dcbf0e4bc6aa701446d79e847d56db26137\"\u003e\u003ccode\u003e7a303dc\u003c/code\u003e\u003c/a\u003e Add option to drop scrubbed user IP addresses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6241\"\u003e#6241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/edaa6d6d142e430e1dd0a1097e0b77506cf159e9\"\u003e\u003ccode\u003eedaa6d6\u003c/code\u003e\u003c/a\u003e feat(pymongo): Add span streaming support (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6253\"\u003e#6253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0e47eadedea808a4ca7865a480552872208be890\"\u003e\u003ccode\u003e0e47ead\u003c/code\u003e\u003c/a\u003e feat(asyncpg): Add cursor span support via BaseCursor method patching (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6252\"\u003e#6252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/17cc8c7b2c31c2df130418bb49137814d4d35f7b\"\u003e\u003ccode\u003e17cc8c7\u003c/code\u003e\u003c/a\u003e fix: Use proto version 2 to fix backfilled user agent and IP (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6256\"\u003e#6256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.59.0...2.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 6.0.3 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/928eec423b8454590a46e50653698d85954f04de\"\u003e\u003ccode\u003e928eec4\u003c/code\u003e\u003c/a\u003e Version 6.0.4 release (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3375\"\u003e#3375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/a9942040a2ed28b8e1ae129578c1f5a4f2b449b8\"\u003e\u003ccode\u003ea994204\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v2 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3374\"\u003e#3374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/ec8107b44d798a16b42ff049fe3904c9a4b5df08\"\u003e\u003ccode\u003eec8107b\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.64.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/28d997bc1e6559579ce3f4663178a8294e402897\"\u003e\u003ccode\u003e28d997b\u003c/code\u003e\u003c/a\u003e Remove unused get_field_lookup_exact_type from helpers (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3372\"\u003e#3372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/d312d60b1d7e852f73babe2a76be1d2961b94393\"\u003e\u003ccode\u003ed312d60\u003c/code\u003e\u003c/a\u003e Update dependency django to v5.2.14 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3371\"\u003e#3371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/f20e49018f19e84a839ab5d11ac47654e671728a\"\u003e\u003ccode\u003ef20e490\u003c/code\u003e\u003c/a\u003e Update Django to 6.0.5 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3369\"\u003e#3369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6d9d0e26fff5462782bfeede76ffd8b2cc36712d\"\u003e\u003ccode\u003e6d9d0e2\u003c/code\u003e\u003c/a\u003e Resolve default_alias for positional Aggregate in annotate() (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6dd9231e36393d5ddaecb5d0ffca2a6b824bf0cc\"\u003e\u003ccode\u003e6dd9231\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.58.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3368\"\u003e#3368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e270482574c273798d875f2191945f64dbb0c00a\"\u003e\u003ccode\u003ee270482\u003c/code\u003e\u003c/a\u003e Update dependency psycopg to v3.3.4 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/cfb0f9a098e24d47f1c3cc5c5de971b599c6e907\"\u003e\u003ccode\u003ecfb0f9a\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.63.1 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.3...6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.9 to 3.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.17.0\u003c/h2\u003e\n\u003ch2\u003eVersioning\u003c/h2\u003e\n\u003cp\u003eThis is the first version targeting \u003ccode\u003edjangorestframework\u003c/code\u003e v3.17 and \u003ccode\u003edjango-stubs\u003c/code\u003e v6.0. However, not all stubs have been updated yet for 3.17:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/blob/master/scripts/stubtest/allowlist_todo_317.txt\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/blob/master/scripts/stubtest/allowlist_todo_317.txt\u003c/a\u003e for remaining work\u003c/li\u003e\n\u003cli\u003ePlease open pull requests, but keep changes small.\u003c/li\u003e\n\u003cli\u003eFirst check that nobody is already working on that topic: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/pulls\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/pulls\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e \u003ccode\u003ecode\u003c/code\u003e support and fix defaults in validators by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/947\"\u003etypeddjango/djangorestframework-stubs#947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing decorator stubs for DRF 3.17 by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/949\"\u003etypeddjango/djangorestframework-stubs#949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eSerializer\u003c/code\u003e context type \u003ccode\u003edict\u003c/code\u003e -\u0026gt; \u003ccode\u003eMapping\u003c/code\u003e by \u003ca href=\"https://github.com/BrianHicks\"\u003e\u003ccode\u003e@​BrianHicks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/946\"\u003etypeddjango/djangorestframework-stubs#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up and improve \u003ccode\u003erest_framework.renderers\u003c/code\u003e by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/960\"\u003etypeddjango/djangorestframework-stubs#960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up and improve \u003ccode\u003erest_framework.fields\u003c/code\u003e by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/964\"\u003etypeddjango/djangorestframework-stubs#964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHousekeeping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency djangorestframework to v3.17.1 \u0026amp; add new allowlist by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/941\"\u003etypeddjango/djangorestframework-stubs#941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock file maintenance - Django 5.2.13 \u0026amp; 6.0.4 by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/962\"\u003etypeddjango/djangorestframework-stubs#962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin \u003ccode\u003etypes-*\u003c/code\u003e dev dependencies for automatic Renovate updates by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/983\"\u003etypeddjango/djangorestframework-stubs#983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.17.0 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/984\"\u003etypeddjango/djangorestframework-stubs#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianHicks\"\u003e\u003ccode\u003e@​BrianHicks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/946\"\u003etypeddjango/djangorestframework-stubs#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/983\"\u003etypeddjango/djangorestframework-stubs#983\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/dcaf5607a9c22db2e19274ff49bd149489603e53\"\u003e\u003ccode\u003edcaf560\u003c/code\u003e\u003c/a\u003e Version 3.17.0 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/984\"\u003e#984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/9ac7355a57ab3ac7e7c00830bb0d8ad4df699e01\"\u003e\u003ccode\u003e9ac7355\u003c/code\u003e\u003c/a\u003e Clean up and improve \u003ccode\u003erest_framework.fields\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4f367f1fcbeb0c5f041a88ea12988fe5a4872e49\"\u003e\u003ccode\u003e4f367f1\u003c/code\u003e\u003c/a\u003e Lock file maintenance\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7923d06e186d363e88e3590fe88a98bdd924920a\"\u003e\u003ccode\u003e7923d06\u003c/code\u003e\u003c/a\u003e Unpin \u003ccode\u003etypes-*\u003c/code\u003e dev dependencies for automatic Renovate updates (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/b2d9250b66d2aa7727793dd05e7cd37208ebcde6\"\u003e\u003ccode\u003eb2d9250\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v2 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/77b63b4ea29056d63b30b60b2d82e564f6194d6b\"\u003e\u003ccode\u003e77b63b4\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/96a5e21a45f39a3e65dbff74a4ce3482d0cdd9d1\"\u003e\u003ccode\u003e96a5e21\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/b6c3e0298ff742dfb60ec2a87319028cd955686f\"\u003e\u003ccode\u003eb6c3e02\u003c/code\u003e\u003c/a\u003e Update dependency types-pyyaml to v6.0.12.20260510 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/cc0af26d455fd5b3b735806409d17e6aef01a0b2\"\u003e\u003ccode\u003ecc0af26\u003c/code\u003e\u003c/a\u003e Update dependency types-requests to v2.33.0.20260508 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/001b9c2865e9c0aae2b1cb181baa5f02be2b6be1\"\u003e\u003ccode\u003e001b9c2\u003c/code\u003e\u003c/a\u003e Update dependency types-pyyaml to v6.0.12.20260508 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.9...3.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.2 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.2...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.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.33.0.20260503 to 2.33.0.20260513\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/rodlukas/UP-admin/pull/388","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlukas%2FUP-admin/issues/388","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/388/packages"}},{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":"the pip group","pr_created_at":"2026-05-16T06:22:58.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4458906285","node_id":"PR_kwDODVE-7M7cKgWC","number":704,"state":"open","title":"Bump selenium from 4.43.0 to 4.44.0 in the pip group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T06:22:58.000Z","updated_at":"2026-05-16T06:23:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"the pip group","ecosystem":"pip"},"body":"Bumps the pip group with 1 update: [selenium](https://github.com/SeleniumHQ/Selenium).\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.43.0\u0026new-version=4.44.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/manics/jupyter-offlinenotebook/pull/704","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Fjupyter-offlinenotebook/issues/704","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/704/packages"}},{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":null,"pr_created_at":"2026-05-14T13:22:55.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4446235809","node_id":"PR_kwDOPY1mYM7biDQF","number":22,"state":"closed","title":"Bump selenium from 4.43.0 to 4.44.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T21:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T13:22:55.000Z","updated_at":"2026-05-14T21:26:58.000Z","time_to_close":29035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.43.0 to 4.44.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/komed3/boincstats/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2Fboincstats/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}},{"old_version":"4.43.0","new_version":"4.44.0","update_type":"minor","path":null,"pr_created_at":"2026-05-14T00:27:29.000Z","version_change":"4.43.0 → 4.44.0","issue":{"uuid":"4442093604","node_id":"PR_kwDOQ_GIVM7bVHsE","number":14,"state":"open","title":"deps: bump the python-packages group with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T00:27:29.000Z","updated_at":"2026-05-14T00:27:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-packages","update_count":3,"packages":[{"name":"tox","old_version":"4.53.1","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"selenium","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.1","repository_url":"https://github.com/psf/requests"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 3 updates: [tox](https://github.com/tox-dev/tox), [selenium](https://github.com/SeleniumHQ/Selenium) and [requests](https://github.com/psf/requests).\n\nUpdates `tox` from 4.53.1 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 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/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra 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/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema 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/tox/pull/3941\"\u003etox-dev/tox#3941\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/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\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/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52\"\u003e\u003ccode\u003ed56867b\u003c/code\u003e\u003c/a\u003e Fix prerelease (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17442\"\u003e#17442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d\"\u003e\u003ccode\u003e331becd\u003c/code\u003e\u003c/a\u003e [dotnet][rb][java][js][py] Automated Browser Version Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17440\"\u003e#17440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068\"\u003e\u003ccode\u003e65bb32e\u003c/code\u003e\u003c/a\u003e [build] do not auto-merge browser updates (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17432\"\u003e#17432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f\"\u003e\u003ccode\u003efd1d36d\u003c/code\u003e\u003c/a\u003e [build] dynamically add and remove rulesets for release (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17439\"\u003e#17439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107\"\u003e\u003ccode\u003ec799aff\u003c/code\u003e\u003c/a\u003e [build] fix release workflow (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17437\"\u003e#17437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1\"\u003e\u003ccode\u003e83ce01e\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Add DisownData command in Network module (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17436\"\u003e#17436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7\"\u003e\u003ccode\u003ef342fee\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Additional Event streaming (breaking change) (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17349\"\u003e#17349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475\"\u003e\u003ccode\u003edfcc86e\u003c/code\u003e\u003c/a\u003e [JavaScript] Move 'isDisplayed' atom to be typescript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17316\"\u003e#17316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858\"\u003e\u003ccode\u003ecc26ec8\u003c/code\u003e\u003c/a\u003e [js][py] Convert getAttribute atom from Closure to TypeScript (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17370\"\u003e#17370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.43.0...selenium-4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/3816cfa1abd42dca21b9e837f26c59b246016aaf\"\u003e\u003ccode\u003e3816cfa\u003c/code\u003e\u003c/a\u003e Parameterize SupportsItems to handle Mapping key invariance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7426\"\u003e#7426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b684dcb9bbf3aa557d1238e72062c4a29737dd1c\"\u003e\u003ccode\u003eb684dcb\u003c/code\u003e\u003c/a\u003e sessions: fix hooks type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7425\"\u003e#7425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/KaiErikNiermann/sneaky-selenium/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fsneaky-selenium/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-05-03T12:01:36.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4371725496","node_id":"PR_kwDOSGfDCM7XxLvg","number":30,"state":"open","title":"chore(deps): bump the python-minor-patch group with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-03T12:01:36.000Z","updated_at":"2026-05-03T12:01:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":11,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"redis","old_version":"7.2.1","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"prometheus-client","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"flask-wtf","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"gunicorn","old_version":"25.1.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.4.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.24.1` | `0.25.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.2` | `1.3.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.1.0` | `25.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.1 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.1...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.24.1 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.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/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.6 to 3.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.8\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.8 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/Werkzeug/3.1.8/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.8/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/45?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/45?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is missing or has invalid characters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3142\"\u003e#3142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 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/Werkzeug/3.1.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.8\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is\nmissing or has invalid characters. :issue:\u003ccode\u003e3142\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/werkzeug/commit/c1a26b45fb06d5e086b4d6be820c3302f588d815\"\u003e\u003ccode\u003ec1a26b4\u003c/code\u003e\u003c/a\u003e release version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7926f0bc3a0da01827e59c81d6da55f8f75a2eed\"\u003e\u003ccode\u003e7926f0b\u003c/code\u003e\u003c/a\u003e relax get_host strictness (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3148\"\u003e#3148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/deab88f61fa57d37d19f83ea438d4bdebb5a743c\"\u003e\u003ccode\u003edeab88f\u003c/code\u003e\u003c/a\u003e relax get_host strictness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/65eb6398231fe94f32fbc765a74980ca61fe5d2b\"\u003e\u003ccode\u003e65eb639\u003c/code\u003e\u003c/a\u003e start version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7720b76b37b17a33e5414bddb992c92ba854f0e3\"\u003e\u003ccode\u003e7720b76\u003c/code\u003e\u003c/a\u003e release version 3.1.7 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-wtf` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit autoupdate by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/607\"\u003epallets-eco/flask-wtf#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove slsa provenance by \u003ca href=\"https://github.com/davidism\"\u003e\u003ccode\u003e@​davidism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/638\"\u003epallets-eco/flask-wtf#638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/648\"\u003epallets-eco/flask-wtf#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry not to read uploaded files into memory by \u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/649\"\u003epallets-eco/flask-wtf#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReCaptcha field testing mode documentation by \u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow nonce in reCaptcha by \u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCSRF meta tag helper by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/674\"\u003epallets-eco/flask-wtf#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewidget support the kwargs to add custom html attributes by \u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect exempts in CSRFProtect.protect() by \u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdding RECAPTCHA_ENABLE to disable recaptcha by \u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove CSRF Documentation by \u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ehttps://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't read the whole uploaded files to know their size. :pr:\u003ccode\u003e635\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9. Start support for Python 3.14. :pr:\u003ccode\u003e648\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv. :pr:\u003ccode\u003e649\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow setting a \u003ccode\u003enonce\u003c/code\u003e on :class:\u003ccode\u003e~flask_wtf.recaptcha.RecaptchaField\u003c/code\u003e\n(string or zero-argument callable) for nonce-based Content Security\nPolicies. :pr:\u003ccode\u003e312\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecsrf_meta_tag()\u003c/code\u003e helper and \u003ccode\u003eWTF_CSRF_META_NAME\u003c/code\u003e setting to render\nthe CSRF token as an HTML \u003ccode\u003e\u0026lt;meta\u0026gt;\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eForward keyword arguments passed to the reCAPTCHA widget as HTML attributes\non the captcha \u003ccode\u003e\u0026lt;div\u0026gt;\u003c/code\u003e, with the field id used as a default \u003ccode\u003eid\u003c/code\u003e.\n:pr:\u003ccode\u003e353\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply_exemptions\u003c/code\u003e parameter to\n:meth:\u003ccode\u003e~flask_wtf.csrf.CSRFProtect.protect\u003c/code\u003e so \u003ccode\u003e@csrf.exempt\u003c/code\u003e keeps working\nwhen validation is triggered manually. :pr:\u003ccode\u003e419\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eRECAPTCHA_ENABLED\u003c/code\u003e setting. :pr:\u003ccode\u003e509\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/flask-wtf/commit/63eb4d3bd55735fc136bdc6f23a90ca2b220b602\"\u003e\u003ccode\u003e63eb4d3\u003c/code\u003e\u003c/a\u003e chore: bump to v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/192ece3da0d98682c13e12574d7b1fc938bdd8e8\"\u003e\u003ccode\u003e192ece3\u003c/code\u003e\u003c/a\u003e Improve CSRF Documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/1f8522d4a362ee66ab12a1ebf55379501dfcef0d\"\u003e\u003ccode\u003e1f8522d\u003c/code\u003e\u003c/a\u003e Adding RECAPTCHA_ENABLE to disable recaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/64b9215be16dc123f7eb187494dbba6bd0e5c2cd\"\u003e\u003ccode\u003e64b9215\u003c/code\u003e\u003c/a\u003e Respect exempts in CSRFProtect.protect() (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/adf674f80c5c5e55c050729e3ec086b4d6cb0f26\"\u003e\u003ccode\u003eadf674f\u003c/code\u003e\u003c/a\u003e widget support the kwargs to add custom html attributes (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ea1f797112f857c783dcd2c6e3954357df8e1bb7\"\u003e\u003ccode\u003eea1f797\u003c/code\u003e\u003c/a\u003e feat: CSRF meta tag helper (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/412e3efda3703b141ca75afbcbf0538a7797b713\"\u003e\u003ccode\u003e412e3ef\u003c/code\u003e\u003c/a\u003e Allow nonce in reCaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/312\"\u003e#312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/a7b764a1fa8f4ea960d81104c364a2d29429e1b8\"\u003e\u003ccode\u003ea7b764a\u003c/code\u003e\u003c/a\u003e ReCaptcha field testing mode documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/c053c0ec11560e68e558636962bbec1115a7ae2a\"\u003e\u003ccode\u003ec053c0e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.1 to 9.0.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ca2216cdf72717aa3c2355ba5f454080c78d9273\"\u003e\u003ccode\u003eca2216c\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv from 0.9.11 to 0.11.6 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.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.3\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.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.3 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.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\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.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\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/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.1.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collection...\n\n_Description has been truncated_","html_url":"https://github.com/jclee941/blacklist/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclee941%2Fblacklist/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"~=4.17.2","new_version":"~=4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-05-03T08:58:35.000Z","version_change":"~=4.17.2 → ~=4.43.0","issue":{"uuid":"4371335396","node_id":"PR_kwDORBwyB87XwAVt","number":8,"state":"closed","title":"pip: update selenium requirement from ~=4.17.2 to ~=4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-03T09:02:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-03T08:58:35.000Z","updated_at":"2026-05-03T09:02:24.000Z","time_to_close":226,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip: update","packages":[{"name":"selenium","old_version":"~=4.17.2","new_version":"~=4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/commits/selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/adrmrt/patreon-scraper/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrmrt%2Fpatreon-scraper/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"\u003e=4.3.0","new_version":"\u003e=4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-05-01T02:57:05.000Z","version_change":"\u003e=4.3.0 → \u003e=4.43.0","issue":{"uuid":"4362543828","node_id":"PR_kwDOACgOtc7XU5P-","number":1981,"state":"closed","title":"Update selenium requirement from \u003e=4.3.0 to \u003e=4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-16T18:37:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T02:57:05.000Z","updated_at":"2026-05-16T18:37:29.000Z","time_to_close":1352415,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"selenium","old_version":"\u003e=4.3.0","new_version":"\u003e=4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.3.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/robotframework/SeleniumLibrary/pull/1981","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FSeleniumLibrary/issues/1981","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1981/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-28T01:22:08.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4339890489","node_id":"PR_kwDORzfYGs7WKqy2","number":4,"state":"open","title":"deps(dependabot): bump the all-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-28T01:22:08.000Z","updated_at":"2026-05-01T21:47:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(dependabot): bump","group_name":"all-dependencies","update_count":6,"packages":[{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"pytest-localserver","old_version":"0.7.0","new_version":"0.10.0","repository_url":"https://github.com/pytest-dev/pytest-localserver"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nUpdates the requirements on [utilo](https://github.com/anaticulae/utilo), [configos](https://github.com/anaticulae/configos), [pytest](https://github.com/pytest-dev/pytest), [selenium](https://github.com/SeleniumHQ/Selenium), [pytest-localserver](https://github.com/pytest-dev/pytest-localserver) and [wheel](https://github.com/pypa/wheel) to permit the latest version.\nUpdates `utilo` to 2.107.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anaticulae/utilo/releases\"\u003eutilo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.107.4 (2026-04-12)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the MIT License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Enable utilosafe (\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecli\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecollection\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003estring\u003c/strong\u003e: Enable unit test (\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/anaticulae/utilo/compare/v2.107.3...v2.107.4\"\u003ev2.107.3...v2.107.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/anaticulae/utilo/blob/main/CHANGELOG\"\u003eutilo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.107.4 (2026-04-12)\u003c/h2\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Enable utilosafe\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecli\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ecollection\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003estring\u003c/strong\u003e: Enable unit test\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.3 (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efix\u003c/strong\u003e: Enable unit test after improving installer\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3a96aef7fc94ea6a1e837d3ca54105312e3509cb\"\u003e\u003ccode\u003e3a96aef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.2 (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003elicense\u003c/strong\u003e: Add missing license file\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/151357d2186cc9e170d3aca04b1bf359ac7ae77e\"\u003e\u003ccode\u003e151357d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003emake\u003c/strong\u003e: Do not run sync\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/3f8c364074e41e915478464a5d9d7e2535898379\"\u003e\u003ccode\u003e3f8c364\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003epyproject\u003c/strong\u003e: Adjust requirements\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/00392d7f26335b57c9d13e65ca00a3b51d2464c4\"\u003e\u003ccode\u003e00392d7\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ebuild\u003c/strong\u003e: Upgrade docker image\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/a74a4cacb8dec18449b3663dcc0a9918811985f4\"\u003e\u003ccode\u003ea74a4ca\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Install utilo correctly\n(\u003ca href=\"https://github.com/anaticulae/utilo/commit/33ab931e83720e26a982a516902e3b82b464ae31\"\u003e\u003ccode\u003e33ab931\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.107.1 (2026-04-09)\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/anaticulae/utilo/commit/236655029c02c9857833f98b355168c835a27e16\"\u003e\u003ccode\u003e2366550\u003c/code\u003e\u003c/a\u003e 2.107.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/c6aac1d94161096b927bf189ba4a1d0e5211f0a1\"\u003e\u003ccode\u003ec6aac1d\u003c/code\u003e\u003c/a\u003e test(string): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/1a3d74e5f7b126432e2f2c6685f0473311d48573\"\u003e\u003ccode\u003e1a3d74e\u003c/code\u003e\u003c/a\u003e test(collection): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/f673e8e8b291fbcc18f7325fdfbda3ae287a733e\"\u003e\u003ccode\u003ef673e8e\u003c/code\u003e\u003c/a\u003e test(cli): enable unit test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3618d181a07b1d1ca0729203407396c18145254b\"\u003e\u003ccode\u003e3618d18\u003c/code\u003e\u003c/a\u003e chore(requirements): enable utilosafe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/95801ff464b8a1a35d66af094444eb56e6f0adbb\"\u003e\u003ccode\u003e95801ff\u003c/code\u003e\u003c/a\u003e 2.107.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3a96aef7fc94ea6a1e837d3ca54105312e3509cb\"\u003e\u003ccode\u003e3a96aef\u003c/code\u003e\u003c/a\u003e test(fix): enable unit test after improving installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/e42161102be0ec426239a7cc0e9d75b23fdc9a0a\"\u003e\u003ccode\u003ee421611\u003c/code\u003e\u003c/a\u003e 2.107.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/3f8c364074e41e915478464a5d9d7e2535898379\"\u003e\u003ccode\u003e3f8c364\u003c/code\u003e\u003c/a\u003e fix(make): do not run sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anaticulae/utilo/commit/33ab931e83720e26a982a516902e3b82b464ae31\"\u003e\u003ccode\u003e33ab931\u003c/code\u003e\u003c/a\u003e chore(docker): install utilo correctly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anaticulae/utilo/compare/v2.107.0...v2.107.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `configos` to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anaticulae/configos/blob/main/CHANGELOG\"\u003econfigos's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.4 (2026-04-11)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emake\u003c/strong\u003e: Add missing rule\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/76d9c879a2d368fddefb6ce58870b304aedbe560\"\u003e\u003ccode\u003e76d9c87\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einit\u003c/strong\u003e: Determine version dynamically\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/18b71c09e0df5a4d19495d9dd0b1df80925f3ca9\"\u003e\u003ccode\u003e18b71c0\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.3 (2026-04-11)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest\u003c/strong\u003e: Adjust unit test\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/43794328e2534213e5a06ed6eba0ebfbe0ecf0da\"\u003e\u003ccode\u003e4379432\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ebuild\u003c/strong\u003e: Use modern approach\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/73926afcf56e21bbc5fc7b23e30efdce6c4f9880\"\u003e\u003ccode\u003e73926af\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Add missing requirement\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/6500df1c263ba436fc55092122548c961c46d832\"\u003e\u003ccode\u003e6500df1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Adjust environment\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/e816bdacebb2a60b264e2a803f0f5d5362d7cc7f\"\u003e\u003ccode\u003ee816bda\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Adjust new build concept\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/aba25963fa4742f96a0b01d8f2c0df9a1ce258ae\"\u003e\u003ccode\u003eaba2596\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Upgrade baw\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/5d146fb33dbfc79e4ab9b52b4a9cf72515f70d6e\"\u003e\u003ccode\u003e5d146fb\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Use access rights to access base image\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/4ad12b8b72a4566aa4f888dd7af8a8cfbce41444\"\u003e\u003ccode\u003e4ad12b8\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003edocker\u003c/strong\u003e: Use prod image\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/a96a2ebd7ebd3f750880dd7f042ae922587d3b75\"\u003e\u003ccode\u003ea96a2eb\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003egithub\u003c/strong\u003e: Add .github\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/bc9feffa19b1f7359bb6314f805c6785bbb5db6a\"\u003e\u003ccode\u003ebc9feff\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003emake\u003c/strong\u003e: Adjust makefile\n(\u003ca href=\"https://github.com/anaticulae/configos/commit/b89e83c6ab0332a17791997e26c324f79e692f07\"\u003e\u003ccode\u003eb89e83c\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003erequirements\u003c/strong\u003e: Remove outdated requirements\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anaticulae/configos/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-localserver` from 0.7.0 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/releases\"\u003epytest-localserver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Python 3.7 tests only on Ubuntu 22.04 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/110\"\u003epytest-dev/pytest-localserver#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README to provide more clear examples by \u003ca href=\"https://github.com/alissa-huskey\"\u003e\u003ccode\u003e@​alissa-huskey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/105\"\u003epytest-dev/pytest-localserver#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.6 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/113\"\u003epytest-dev/pytest-localserver#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlock broken version of pytest-cov by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/117\"\u003epytest-dev/pytest-localserver#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate black target version to Python 3.7 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/118\"\u003epytest-dev/pytest-localserver#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove driver code by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/119\"\u003epytest-dev/pytest-localserver#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PyTest command from setup.py by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/124\"\u003epytest-dev/pytest-localserver#124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate outdated action versions by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/129\"\u003epytest-dev/pytest-localserver#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/130\"\u003epytest-dev/pytest-localserver#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch to PEP-639 compliant expression of license metadata by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/128\"\u003epytest-dev/pytest-localserver#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsolidate tests by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/131\"\u003epytest-dev/pytest-localserver#131\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow testing with pytest 9 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/133\"\u003epytest-dev/pytest-localserver#133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a summary job that checks whether all tests passed by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/134\"\u003epytest-dev/pytest-localserver#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate AUTHORS and CHANGES for 0.10 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/135\"\u003epytest-dev/pytest-localserver#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/101\"\u003epytest-dev/pytest-localserver#101\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/102\"\u003epytest-dev/pytest-localserver#102\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/103\"\u003epytest-dev/pytest-localserver#103\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/104\"\u003epytest-dev/pytest-localserver#104\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/106\"\u003epytest-dev/pytest-localserver#106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/107\"\u003epytest-dev/pytest-localserver#107\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/108\"\u003epytest-dev/pytest-localserver#108\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/109\"\u003epytest-dev/pytest-localserver#109\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/111\"\u003epytest-dev/pytest-localserver#111\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/112\"\u003epytest-dev/pytest-localserver#112\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/114\"\u003epytest-dev/pytest-localserver#114\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/115\"\u003epytest-dev/pytest-localserver#115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/116\"\u003epytest-dev/pytest-localserver#116\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/120\"\u003epytest-dev/pytest-localserver#120\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/121\"\u003epytest-dev/pytest-localserver#121\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/122\"\u003epytest-dev/pytest-localserver#122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/123\"\u003epytest-dev/pytest-localserver#123\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/132\"\u003epytest-dev/pytest-localserver#132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alissa-huskey\"\u003e\u003ccode\u003e@​alissa-huskey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/105\"\u003epytest-dev/pytest-localserver#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/113\"\u003epytest-dev/pytest-localserver#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you for helping out!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.10.0\"\u003ehttps://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0.post0\u003c/h2\u003e\n\u003cp\u003eThis release makes some long-overdue updates to the allowed versions of pytest. For most people, this will be a drop-in replacement for version 0.9; however, anyone forced to work with a really old version of pytest (specifically \u003ccode\u003epytest\u0026gt;=4,\u0026lt;4.6\u003c/code\u003e) will have to stay on 0.9.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump required pytest version to 4.6 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/98\"\u003epytest-dev/pytest-localserver#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease max allowed pytest version to 9 by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/99\"\u003epytest-dev/pytest-localserver#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/96\"\u003epytest-dev/pytest-localserver#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changes for upcoming 0.9.0.post0 release by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/100\"\u003epytest-dev/pytest-localserver#100\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/pytest-localserver/compare/v0.9.0...v0.9.0.post0\"\u003ehttps://github.com/pytest-dev/pytest-localserver/compare/v0.9.0...v0.9.0.post0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for exposing server certificate by \u003ca href=\"https://github.com/Nicoretti\"\u003e\u003ccode\u003e@​Nicoretti\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/75\"\u003epytest-dev/pytest-localserver#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly store request data by \u003ca href=\"https://github.com/a-gerhard\"\u003e\u003ccode\u003e@​a-gerhard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/78\"\u003epytest-dev/pytest-localserver#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pre-commit errors by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/80\"\u003epytest-dev/pytest-localserver#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/81\"\u003epytest-dev/pytest-localserver#81\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/83\"\u003epytest-dev/pytest-localserver#83\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/85\"\u003epytest-dev/pytest-localserver#85\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/86\"\u003epytest-dev/pytest-localserver#86\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/87\"\u003epytest-dev/pytest-localserver#87\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/89\"\u003epytest-dev/pytest-localserver#89\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/90\"\u003epytest-dev/pytest-localserver#90\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/91\"\u003epytest-dev/pytest-localserver#91\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/92\"\u003epytest-dev/pytest-localserver#92\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/94\"\u003epytest-dev/pytest-localserver#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused \u003ccode\u003esix\u003c/code\u003e from tox config by \u003ca href=\"https://github.com/boidolr\"\u003e\u003ccode\u003e@​boidolr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/84\"\u003epytest-dev/pytest-localserver#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.5 support by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/88\"\u003epytest-dev/pytest-localserver#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 support by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/93\"\u003epytest-dev/pytest-localserver#93\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate author file and changelog for the upcoming 0.9.0 release by \u003ca href=\"https://github.com/diazona\"\u003e\u003ccode\u003e@​diazona\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/pull/95\"\u003epytest-dev/pytest-localserver#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/pytest-dev/pytest-localserver/blob/main/CHANGES\"\u003epytest-localserver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0 (2025-11-24)\u003c/h2\u003e\n\u003cp\u003eClarify examples in README\nDrop Python 3.6 support\nAdd Python 3.14 support\nAdd pytest 9 support\nConsolidate tests\nRemove obsolete driver code in some modules\nRemove obsolete PyTest command from setup.py\nSwitch to PEP-639 compliant license metadata\nUpdate outdated GitHub Action versions\nAdd a summary GitHub Action job\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.9.0.post0 (2024-10-05)\u003c/h2\u003e\n\u003cp\u003eUpdate listed dependencies to add support for pytest 8 and drop support for pytest\u0026lt;4.6\u003c/p\u003e\n\u003ch2\u003e0.9.0 (2024-08-13)\u003c/h2\u003e\n\u003cp\u003eAdd support for exposing server certificate\nExplicitly store request data (fixes \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/77\"\u003e#77\u003c/a\u003e)\nMake the code compliant with pre-commit hooks\nRemove unused \u003ccode\u003esix\u003c/code\u003e from tox config\nDrop Python 3.5 support\nAdd Python 3.13 support\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.8.1 (2023-09-23)\u003c/h2\u003e\n\u003cp\u003eIgnore AttributeError when shutting down server\nAdd support for Python 3.12 (or at least, list it explicitly in the classifiers)\nUpdate the AUTHORS file\u003c/p\u003e\n\u003ch2\u003e0.8.0 (2023-07-14)\u003c/h2\u003e\n\u003cp\u003eImprove deployment workflow to use trusted publishing and upload to Test PyPI first\nRemove a bunch of obsolete code\nClean up the smtp module's driver code\u003c/p\u003e\n\u003ch2\u003e0.7.1 (2023-01-29)\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/pytest-dev/pytest-localserver/commit/d79c1108a0238a2cf6d7d6f2687b5e74d10f4113\"\u003e\u003ccode\u003ed79c110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/135\"\u003e#135\u003c/a\u003e from pytest-dev/update-for-0.10/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/2957c0a427ddb037e5b575396ec0b6d0603002fe\"\u003e\u003ccode\u003e2957c0a\u003c/code\u003e\u003c/a\u003e Update CHANGES for the upcoming 0.10 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/a38e61140ac5f67813d860359214a9e0198b3fbf\"\u003e\u003ccode\u003ea38e611\u003c/code\u003e\u003c/a\u003e Update the AUTHORS file with recent contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/3e7d73131adc86393e65f927170b819165ba08a4\"\u003e\u003ccode\u003e3e7d731\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/134\"\u003e#134\u003c/a\u003e from pytest-dev/test-status-check/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/fd567ea318de342192a3d0cd8677a3cdaf30a3f9\"\u003e\u003ccode\u003efd567ea\u003c/code\u003e\u003c/a\u003e Add a summary job that checks whether all tests passed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/82e4f11d4b2f70f0c72961e44d0b6e121d8c4cfb\"\u003e\u003ccode\u003e82e4f11\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/133\"\u003e#133\u003c/a\u003e from pytest-dev/support-pytest-9/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/f975518bd03c35f1f45e77335e9ee562c6466e2b\"\u003e\u003ccode\u003ef975518\u003c/code\u003e\u003c/a\u003e Allow testing with pytest 9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/9bc3c59f7723578fd743e24cb18bd0d9f6c920ae\"\u003e\u003ccode\u003e9bc3c59\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-localserver/issues/131\"\u003e#131\u003c/a\u003e from pytest-dev/consolidate-tests/1/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/29b219524987f87926e998326b424b0e395e6ac8\"\u003e\u003ccode\u003e29b2195\u003c/code\u003e\u003c/a\u003e Enable package cache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-localserver/commit/3d2724d16adc9a862f2dc98e59894df5d266a33a\"\u003e\u003ccode\u003e3d2724d\u003c/code\u003e\u003c/a\u003e Combine CI jobs into one per Python version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-localserver/compare/v0.7.0...v0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without unpacking them (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains uppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory inside uses normalized lowercase naming (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/411\"\u003e#411\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/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.47.0 (2026-04-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without\nunpacking them (\u003ccode\u003e[#639](https://github.com/pypa/wheel/issues/639) \u0026lt;https://github.com/pypa/wheel/issues/639\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains\nuppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory\ninside uses normalized lowercase naming\n(\u003ccode\u003e[#411](https://github.com/pypa/wheel/issues/411) \u0026lt;https://github.com/pypa/wheel/issues/411\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/efd83a750f07a33462ea2eed365fd8dac9e51442\"\u003e\u003ccode\u003eefd83a7\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/bb69216d35588c2a0febc2d9a130727fe6e46ee3\"\u003e\u003ccode\u003ebb69216\u003c/code\u003e\u003c/a\u003e Reordered the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d5a1763ce927618bfa7d82abe334d0d14a93cc37\"\u003e\u003ccode\u003ed5a1763\u003c/code\u003e\u003c/a\u003e fix(wheelfile): resolve .dist-info path case-insensitively when reading wheel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/5718957928ece25eb0d1c12023c71dea4fcb5cf9\"\u003e\u003ccode\u003e5718957\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/625806845ae5756be3cc0f9d44832c29079c0954\"\u003e\u003ccode\u003e6258068\u003c/code\u003e\u003c/a\u003e chore: log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/2975debc789682b3a448b134611acc6962a93eb3\"\u003e\u003ccode\u003e2975deb\u003c/code\u003e\u003c/a\u003e Require tox \u0026gt;= 4.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/47674ba770e5ee72d679b7eb32b558e0c177640d\"\u003e\u003ccode\u003e47674ba\u003c/code\u003e\u003c/a\u003e chore: add check-sdist to checks (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/56223f6f8dfa8d3d40923f24dcf159204698d7b6\"\u003e\u003ccode\u003e56223f6\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e__package__\u003c/code\u003e → \u003ccode\u003e__spec__.parent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/679\"\u003e#679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0ce509e02dc3cd1b7b0bdf868482de062b3c21c3\"\u003e\u003ccode\u003e0ce509e\u003c/code\u003e\u003c/a\u003e Added the wheel info subcommand (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/39039c0f3446c1ed5ec52621e98bc2bad8178a06\"\u003e\u003ccode\u003e39039c0\u003c/code\u003e\u003c/a\u003e Improved the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.46.3...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/anaticulae/utilotest/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anaticulae%2Futilotest/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"\u003e=4.15.0","new_version":"\u003e=4.36.0","update_type":"minor","path":"/034.redmine-mcp-server","pr_created_at":"2026-04-27T11:31:11.000Z","version_change":"\u003e=4.15.0 → \u003e=4.36.0","issue":{"uuid":"4335373822","node_id":"PR_kwDOJytPo87V8NXk","number":809,"state":"closed","title":"build(deps): update selenium requirement from \u003e=4.15.0 to \u003e=4.36.0 in /034.redmine-mcp-server","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-30T00:48:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T11:31:11.000Z","updated_at":"2026-04-30T00:48:15.000Z","time_to_close":220623,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"selenium","old_version":"\u003e=4.15.0","new_version":"\u003e=4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"/034.redmine-mcp-server","ecosystem":"pip"},"body":"Updates the requirements on [selenium](https://github.com/SeleniumHQ/Selenium) 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/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.36.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[py]: close ipv6 port in case of error by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16165\"\u003eSeleniumHQ/selenium#16165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update issue label in CONTRIBUTING.md by \u003ca href=\"https://github.com/pallavigitwork\"\u003e\u003ccode\u003e@​pallavigitwork\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16169\"\u003eSeleniumHQ/selenium#16169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][docs]: update dead API docs link to API reference in \u003ccode\u003eindex.rst\u003c/code\u003e by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16170\"\u003eSeleniumHQ/selenium#16170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] close the HttpClient after the session is gone by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16182\"\u003eSeleniumHQ/selenium#16182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docstring and comments in keys.py by \u003ca href=\"https://github.com/Aidoni0797\"\u003e\u003ccode\u003e@​Aidoni0797\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16187\"\u003eSeleniumHQ/selenium#16187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Simplify type naming of internal command parameters by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16188\"\u003eSeleniumHQ/selenium#16188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix formatting by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16189\"\u003eSeleniumHQ/selenium#16189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support WebExtension module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15850\"\u003eSeleniumHQ/selenium#15850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb][BiDi] Create browser module, added user context related methods by \u003ca href=\"https://github.com/aguspe\"\u003e\u003ccode\u003e@​aguspe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15371\"\u003eSeleniumHQ/selenium#15371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update bug report section in CONTRIBUTING.md by \u003ca href=\"https://github.com/pallavigitwork\"\u003e\u003ccode\u003e@​pallavigitwork\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16191\"\u003eSeleniumHQ/selenium#16191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Adding flag to enable SafariDriver logging. by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16196\"\u003eSeleniumHQ/selenium#16196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] extend the scope of the properties of the HttpCommandExecutor class by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16186\"\u003eSeleniumHQ/selenium#16186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Serialize base64 encoded string directly to bytes by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16203\"\u003eSeleniumHQ/selenium#16203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Make cookie expiry as TimeSpan by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16204\"\u003eSeleniumHQ/selenium#16204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Improve readTimeout in handle session between Router and Node by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16163\"\u003eSeleniumHQ/selenium#16163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix type annotation error and raise clearer error message by \u003ca href=\"https://github.com/Paresh-0007\"\u003e\u003ccode\u003e@​Paresh-0007\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16174\"\u003eSeleniumHQ/selenium#16174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Unifying select class by \u003ca href=\"https://github.com/vicky-iv\"\u003e\u003ccode\u003e@​vicky-iv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16220\"\u003eSeleniumHQ/selenium#16220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Update dependency rules_cc to v0.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16198\"\u003eSeleniumHQ/selenium#16198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update testing-library monorepo by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16173\"\u003eSeleniumHQ/selenium#16173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency tmp to ^0.2.5 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16172\"\u003eSeleniumHQ/selenium#16172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Update dependency System.Text.Json to 8.0.6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16171\"\u003eSeleniumHQ/selenium#16171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency react-router-dom to v6.30.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16076\"\u003eSeleniumHQ/selenium#16076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update material-ui monorepo to v5.18.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16062\"\u003eSeleniumHQ/selenium#16062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update dependency ws to ^8.18.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16009\"\u003eSeleniumHQ/selenium#16009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Update react monorepo by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/15949\"\u003eSeleniumHQ/selenium#15949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Update dependency net.bytebuddy:byte-buddy to v1.17.7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16237\"\u003eSeleniumHQ/selenium#16237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update dependency charset-normalizer to v3.4.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16239\"\u003eSeleniumHQ/selenium#16239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update dependency cryptography to v45.0.6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16240\"\u003eSeleniumHQ/selenium#16240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] Update dependency charset-normalizer to v3.4.3\u0026quot; by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16242\"\u003eSeleniumHQ/selenium#16242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] Update dependency cryptography to v45.0.6\u0026quot; by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16243\"\u003eSeleniumHQ/selenium#16243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies for dev and fix script by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16244\"\u003eSeleniumHQ/selenium#16244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Help old .net framework copy selenium manager to output by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16228\"\u003eSeleniumHQ/selenium#16228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add hooks around getScreenshotAs in WebDriverListener \u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16232\"\u003e#16232\u003c/a\u003e by \u003ca href=\"https://github.com/giulong\"\u003e\u003ccode\u003e@​giulong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16233\"\u003eSeleniumHQ/selenium#16233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi]: enable \u003ccode\u003ehistory_updated\u003c/code\u003e event test by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16236\"\u003eSeleniumHQ/selenium#16236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump ruff version for linting/formatting by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16254\"\u003eSeleniumHQ/selenium#16254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi]: use bidi \u003ccode\u003enavigate\u003c/code\u003e command in network tests by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16251\"\u003eSeleniumHQ/selenium#16251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix find port for IPv4 only environments by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16216\"\u003eSeleniumHQ/selenium#16216\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/SeleniumHQ/selenium/commit/6d115cfd877e1ba381c647fd08ba6450ae256624\"\u003e\u003ccode\u003e6d115cf\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of Selenium 4.36.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16332\"\u003e#16332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/2eeadabc5250ea590f6f142df1ad8d9f23eb37ab\"\u003e\u003ccode\u003e2eeadab\u003c/code\u003e\u003c/a\u003e [rust] Log browser path also in offline mode (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16215\"\u003e#16215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8e84f0d9bdb0e41836b62f92b2a94f594967a659\"\u003e\u003ccode\u003e8e84f0d\u003c/code\u003e\u003c/a\u003e [rust] Set Rust version to 1.89.0 in WORKSPACE (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16368\"\u003e#16368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6061c87ca0f222e69ecd9e4cf16b04b8d516aed3\"\u003e\u003ccode\u003e6061c87\u003c/code\u003e\u003c/a\u003e [grid] UI Light/Dark Mode Toggle (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16364\"\u003e#16364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/a578a474735babb006fa412d3888f44aeb4bd051\"\u003e\u003ccode\u003ea578a47\u003c/code\u003e\u003c/a\u003e [rust] Bump Rust edition to 2024, rulest_rust to 0.65.0, and crates to latest...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/93fdf5797cf3900016cc9c647c54158d5ee5e23c\"\u003e\u003ccode\u003e93fdf57\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Give only one chance to receive from remote end (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16360\"\u003e#16360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/b3b66a00e9cd1a854c25b71be441d0ed1f93138b\"\u003e\u003ccode\u003eb3b66a0\u003c/code\u003e\u003c/a\u003e [dotnet] [bidi] Introduce BaseNavigationInfo type as interface (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16348\"\u003e#16348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/9a4bbcc639202ce3fe7c10feb1b05f3a1d37844a\"\u003e\u003ccode\u003e9a4bbcc\u003c/code\u003e\u003c/a\u003e [py] Add --enable-chrome-logs to chrome service args to inherit browser i/o s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4c603ec37c9657a99a0846593f2d81f8e3103ee3\"\u003e\u003ccode\u003e4c603ec\u003c/code\u003e\u003c/a\u003e [rb] fix unit tests (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/16357\"\u003e#16357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8a7216855c8cf19cdfc64443db0242ddeab73770\"\u003e\u003ccode\u003e8a72168\u003c/code\u003e\u003c/a\u003e [dotnet] Begin reading of driver service output to fix Firefox disposing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.15.0...selenium-4.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/kohei39san/mystudy-handson/pull/809","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kohei39san%2Fmystudy-handson/issues/809","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/809/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-23T20:45:39.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4318770113","node_id":"PR_kwDOQYTN0c7VHnvW","number":5316,"state":"closed","title":"deps(python): bump the python-minor group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-23T20:57:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T20:45:39.000Z","updated_at":"2026-04-23T20:57:45.000Z","time_to_close":724,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":12,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"cachetools","old_version":"7.0.5","new_version":"7.0.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"altair","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/vega/altair"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.96.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.5` | `7.0.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.11` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [altair](https://github.com/vega/altair) | `6.0.0` | `6.1.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\n\nUpdates `fastapi` from 0.135.3 to 0.136.1\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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\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 translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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\u003c/blockquote\u003e\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/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\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.135.3...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastmcp` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.4: Patch Me If You Can\u003c/h2\u003e\n\u003cp\u003eA grab bag of fixes, hardening, and polish.\u003c/p\u003e\n\u003cp\u003eThe headline behavior change: background tasks are now scoped to the authorization context rather than the MCP session, so a task kicked off by an authenticated user survives session churn and stays tied to who started it. This is a breaking change for anyone relying on the old session-scoped semantics.\u003c/p\u003e\n\u003cp\u003eSecurity got three meaningful upgrades. \u003ccode\u003eFileUpload\u003c/code\u003e now validates actual decoded base64 size instead of trusting the client-reported number, so an attacker can't claim \u0026quot;10 bytes\u0026quot; and deliver 10MB. The proxy client stops forwarding inbound HTTP headers to unrelated remote servers — previously a header meant for server A could leak to server B. And AuthKit now auto-binds token audience to the resource URL per RFC 8707, closing a token-reuse gap across MCP resources.\u003c/p\u003e\n\u003cp\u003eSchema handling had a rough-edges pass. \u003ccode\u003ejson_schema_to_type\u003c/code\u003e no longer crashes on Python keywords, boolean schemas, empty enums, or name collisions, and we added a 232K-schema crash test from APIs.guru to keep it honest. Gemini 2.5 Flash compatibility is fixed by stripping \u003ccode\u003etitle\u003c/code\u003e fields the model rejects. Parameter descriptions are now extracted from docstrings automatically, so your tool signatures document themselves.\u003c/p\u003e\n\u003cp\u003ePlus a Keycloak OAuth provider for enterprise auth, improvements to \u003ccode\u003ectx.elicit()\u003c/code\u003e (new \u003ccode\u003eresponse_title\u003c/code\u003e/\u003ccode\u003eresponse_description\u003c/code\u003e, deprecation warning when called without \u003ccode\u003eresponse_type\u003c/code\u003e), and dozens of smaller fixes across transforms, retry middleware, resource templates, and client disconnect handling.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScope tasks to authorization context, not session by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3800\"\u003ePrefectHQ/fastmcp#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydocket\u0026gt;=0.19.0, drop fakeredis pin by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3822\"\u003ePrefectHQ/fastmcp#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd real-world schema crash test (232K schemas from APIs.guru) by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3826\"\u003ePrefectHQ/fastmcp#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 7 zero-violation ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3841\"\u003ePrefectHQ/fastmcp#3841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePromote 7 ty rules from ignore to warn by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3852\"\u003ePrefectHQ/fastmcp#3852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace ___ with hash-based backend tool routing and per-tool prefab resources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3824\"\u003ePrefectHQ/fastmcp#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 4 ruff rules (DTZ, ERA, ISC, INP) and fix 9 violations by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3842\"\u003ePrefectHQ/fastmcp#3842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract parameter descriptions from docstrings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3872\"\u003ePrefectHQ/fastmcp#3872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up schema crash test (CSafeLoader + xdist-safe aggregation) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3873\"\u003ePrefectHQ/fastmcp#3873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: bump OpenAPI init perf threshold to 200ms for Windows CI by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3879\"\u003ePrefectHQ/fastmcp#3879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: unify object-schema conversion through _object_schema_to_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3884\"\u003ePrefectHQ/fastmcp#3884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Keycloak OAuth Provider for Enterprise Authentication and local dev by \u003ca href=\"https://github.com/stephaneberle9\"\u003e\u003ccode\u003e@​stephaneberle9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1937\"\u003ePrefectHQ/fastmcp#1937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow auth providers to override protected resource base URLs by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3900\"\u003ePrefectHQ/fastmcp#3900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable PERF and T20 ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3845\"\u003ePrefectHQ/fastmcp#3845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd response_title and response_description to ctx.elicit() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3912\"\u003ePrefectHQ/fastmcp#3912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate ctx.elicit() without response_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3916\"\u003ePrefectHQ/fastmcp#3916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity 🔒\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate actual base64 data size in FileUpload, not client-reported size by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3816\"\u003ePrefectHQ/fastmcp#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop forwarding inbound HTTP headers to unrelated remote servers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3837\"\u003ePrefectHQ/fastmcp#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuthKit: auto-bind token audience to resource URL (RFC 8707) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3905\"\u003ePrefectHQ/fastmcp#3905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersion-check is_docket_available() to avoid transitive pydocket crash by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3807\"\u003ePrefectHQ/fastmcp#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: materialize generators before result conversion, handle bytes gracefully by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3830\"\u003ePrefectHQ/fastmcp#3830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix json_schema_to_type crashes on keywords, boolean schemas, empty enums, and name collisions by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3818\"\u003ePrefectHQ/fastmcp#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace \u003ccode\u003eor\u003c/code\u003e with \u003ccode\u003eis not None\u003c/code\u003e checks for config/override merging by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3833\"\u003ePrefectHQ/fastmcp#3833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: TransformedTool sync fn crash and schema mutation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3823\"\u003ePrefectHQ/fastmcp#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cross-provider duplicate detection, error visibility, mask propagation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3827\"\u003ePrefectHQ/fastmcp#3827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't pass HTTP kwargs when transport is unspecified by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3838\"\u003ePrefectHQ/fastmcp#3838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip title fields from tool schemas for Gemini 2.5 Flash compatibility by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3861\"\u003ePrefectHQ/fastmcp#3861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: retry when LLM returns text instead of calling final_response by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3850\"\u003ePrefectHQ/fastmcp#3850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on unhandled content types in sampling handler dispatch chains by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3857\"\u003ePrefectHQ/fastmcp#3857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken code examples in docs by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3869\"\u003ePrefectHQ/fastmcp#3869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: GoogleGenaiSamplingHandler leaks thought parts and gives unhelpful errors on empty responses by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3849\"\u003ePrefectHQ/fastmcp#3849\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/PrefectHQ/fastmcp/commit/7d7607473d7713d9937cbbbe0bfc635976c511d3\"\u003e\u003ccode\u003e7d76074\u003c/code\u003e\u003c/a\u003e Stop pydantic 2.13 from leaking _WrappedResult docstring into tool output sch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/b732a4a516e4a41f053e46dbd86e9520cf5178bf\"\u003e\u003ccode\u003eb732a4a\u003c/code\u003e\u003c/a\u003e Overhaul apps docs (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/5c2ff1bd7b9844a3891149741de56a5e4d24621d\"\u003e\u003ccode\u003e5c2ff1b\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f4f2ec07fbb611a25ce27e1b4f9b67f54bc2420a\"\u003e\u003ccode\u003ef4f2ec0\u003c/code\u003e\u003c/a\u003e Deprecate ctx.elicit() without response_type (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/338b80c3ae3b8c5ac3a7e094178c9f34eb286ea8\"\u003e\u003ccode\u003e338b80c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/110cd3adcb7a433923ed8ed4a8b23d076a313ab5\"\u003e\u003ccode\u003e110cd3a\u003c/code\u003e\u003c/a\u003e Add response_title and response_description to ctx.elicit() (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/311784617639d7b46490d863f2e4bb24be6361c5\"\u003e\u003ccode\u003e3117846\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/031c7e03b48330345bc4d1f82a9cc78ed269b07c\"\u003e\u003ccode\u003e031c7e0\u003c/code\u003e\u003c/a\u003e Fix RetryMiddleware not retrying tool errors (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3858\"\u003e#3858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/200d79e7d28f36b36c271621d9550aa3fb3c0aa7\"\u003e\u003ccode\u003e200d79e\u003c/code\u003e\u003c/a\u003e Enable PERF and T20 ruff rules (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/82f310fe61dba25de34f2be3e203555ccfc4181d\"\u003e\u003ccode\u003e82f310f\u003c/code\u003e\u003c/a\u003e AuthKit: auto-bind token audience to resource URL (RFC 8707) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3905\"\u003e#3905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\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/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.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/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.5 to 7.0.6\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\u003ev7.0.6 (2026-04-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate project URLs.\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/28d4506f2a49d781ffbcecb095fa7aba5bb80aff\"\u003e\u003ccode\u003e28d4506\u003c/code\u003e\u003c/a\u003e Release v7.0.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51921a4812b3304be9625ed004f024935a8036af\"\u003e\u003ccode\u003e51921a4\u003c/code\u003e\u003c/a\u003e Remove _TimedCache default timer to simplify type stubs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a4249f6aa3b4cb2fe287b08631c308bb88b9396c\"\u003e\u003ccode\u003ea4249f6\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.5.2 to 6.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/aa87283858f09b6820103373b7623d4ef51d233f\"\u003e\u003ccode\u003eaa87283\u003c/code\u003e\u003c/a\u003e feat: update project URLs in pyproject.toml to show on pypi.org (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.5...v7.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit...\n\n_Description has been truncated_","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5316","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5316","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5316/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-23T17:45:20.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4317780026","node_id":"PR_kwDOPwjk687VEWi7","number":497,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-23T17:52:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T17:45:20.000Z","updated_at":"2026-04-23T17:52:03.000Z","time_to_close":400,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":9,"packages":[{"name":"fastapi","old_version":"0.135.2","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sentry-sdk","old_version":"2.56.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cloudinary","old_version":"1.44.1","new_version":"1.44.2","repository_url":"https://github.com/cloudinary/pycloudinary"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 9 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.2` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.56.0` | `2.58.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [cloudinary](https://github.com/cloudinary/pycloudinary) | `1.44.1` | `1.44.2` |\n\n\nUpdates `fastapi` from 0.135.2 to 0.136.1\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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\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 translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\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.135.2...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.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's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio 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/2917\"\u003eKludex/uvicorn#2917\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.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware 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/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs 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/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context 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/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\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.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio 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/2888\"\u003eKludex/uvicorn#2888\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.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\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/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\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/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.56.0 to 2.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/commit/ce445d96977ec083b97495c917aa0c3ce453689d\"\u003e\u003ccode\u003ece445d9\u003c/code\u003e\u003c/a\u003e release: 2.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c0e9cfc8536f0d9ba22925e4bea17034138cd0\"\u003e\u003ccode\u003ec0c0e9c\u003c/code\u003e\u003c/a\u003e feat(litellm): Add async callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5969\"\u003e#5969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ea74b63881d2cf1d71130a8b6ef4dfff4e4cd337\"\u003e\u003ccode\u003eea74b63\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5975\"\u003e#5975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/06ed1bca2f9302055ba43dc058f5afcc731b8d79\"\u003e\u003ccode\u003e06ed1bc\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66ef2e6976a1ae86e97aca08cbc806f9e579f324\"\u003e\u003ccode\u003e66ef2e6\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming `completion()...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/96ebbf67d91146ebb30be6e0898a637ea6c2c697\"\u003e\u003ccode\u003e96ebbf6\u003c/code\u003e\u003c/a\u003e fix(litellm): Avoid double span exits when streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e22b5dc3447a5bee71574a5c22934e5aa8a7642\"\u003e\u003ccode\u003e7e22b5d\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 8.0.0 to 9.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5979\"\u003e#5979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35151a90a98affa0d72f7cb8b314a8fb54ac8b51\"\u003e\u003ccode\u003e35151a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5980\"\u003e#5980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d1c5b53096e76353e2aa3ffdd8a845f38bb04bb6\"\u003e\u003ccode\u003ed1c5b53\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5981\"\u003e#5981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e255aafa913955eed43333aa204f1476d9dc1ff2\"\u003e\u003ccode\u003ee255aaf\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 6b1f51ec8af03e19...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.56.0...2.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/se...\n\n_Description has been truncated_","html_url":"https://github.com/muppetbrown/mana_meeples_boardgame_list/pull/497","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/muppetbrown%2Fmana_meeples_boardgame_list/issues/497","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/497/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T22:16:54.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4299013851","node_id":"PR_kwDOQYTN0c7UHerq","number":5296,"state":"closed","title":"deps(python): bump the python-minor group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-23T20:44:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T22:16:54.000Z","updated_at":"2026-04-23T20:44:57.000Z","time_to_close":253681,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":10,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"cachetools","old_version":"7.0.5","new_version":"7.0.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.96.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.5` | `7.0.6` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\n\nUpdates `fastapi` from 0.135.3 to 0.136.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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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\u003c/blockquote\u003e\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/708606c982cf35718cb2214c0bb9261cf548f042\"\u003e\u003ccode\u003e708606c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/13be6a3a0f12d3f36c286196ef555dd51dc09edb\"\u003e\u003ccode\u003e13be6a3\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b264878d71b2dc0e9e0f90ef15459d4302a7f9c\"\u003e\u003ccode\u003e4b26487\u003c/code\u003e\u003c/a\u003e ⬆️ Support free-threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15149\"\u003e#15149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f796c346a8537876de43729ff1ca1409d4648893\"\u003e\u003ccode\u003ef796c34\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09d1d1cb7073b3c7bd1f58fcf6faefa9b2c29de4\"\u003e\u003ccode\u003e09d1d1c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae4e45c5cc20a1e1503fbcab2369821d188feb09\"\u003e\u003ccode\u003eae4e45c\u003c/code\u003e\u003c/a\u003e 🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15363\"\u003e#15363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9653034b8d459607a4b7f761e6c23a6f287fa5fa\"\u003e\u003ccode\u003e9653034\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6f9a102faf071dbfa812a3af88d7d309d2ded4a6\"\u003e\u003ccode\u003e6f9a102\u003c/code\u003e\u003c/a\u003e ⬆ Bump cryptography from 46.0.5 to 46.0.7 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15314\"\u003e#15314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/eba8942c81dbf990d25fbae34e6601bdbc21e74b\"\u003e\u003ccode\u003eeba8942\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/77d080caf850b8af5c0f467389edf03c057c7697\"\u003e\u003ccode\u003e77d080c\u003c/code\u003e\u003c/a\u003e ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15309\"\u003e#15309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.136.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastmcp` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.4: Patch Me If You Can\u003c/h2\u003e\n\u003cp\u003eA grab bag of fixes, hardening, and polish.\u003c/p\u003e\n\u003cp\u003eThe headline behavior change: background tasks are now scoped to the authorization context rather than the MCP session, so a task kicked off by an authenticated user survives session churn and stays tied to who started it. This is a breaking change for anyone relying on the old session-scoped semantics.\u003c/p\u003e\n\u003cp\u003eSecurity got three meaningful upgrades. \u003ccode\u003eFileUpload\u003c/code\u003e now validates actual decoded base64 size instead of trusting the client-reported number, so an attacker can't claim \u0026quot;10 bytes\u0026quot; and deliver 10MB. The proxy client stops forwarding inbound HTTP headers to unrelated remote servers — previously a header meant for server A could leak to server B. And AuthKit now auto-binds token audience to the resource URL per RFC 8707, closing a token-reuse gap across MCP resources.\u003c/p\u003e\n\u003cp\u003eSchema handling had a rough-edges pass. \u003ccode\u003ejson_schema_to_type\u003c/code\u003e no longer crashes on Python keywords, boolean schemas, empty enums, or name collisions, and we added a 232K-schema crash test from APIs.guru to keep it honest. Gemini 2.5 Flash compatibility is fixed by stripping \u003ccode\u003etitle\u003c/code\u003e fields the model rejects. Parameter descriptions are now extracted from docstrings automatically, so your tool signatures document themselves.\u003c/p\u003e\n\u003cp\u003ePlus a Keycloak OAuth provider for enterprise auth, improvements to \u003ccode\u003ectx.elicit()\u003c/code\u003e (new \u003ccode\u003eresponse_title\u003c/code\u003e/\u003ccode\u003eresponse_description\u003c/code\u003e, deprecation warning when called without \u003ccode\u003eresponse_type\u003c/code\u003e), and dozens of smaller fixes across transforms, retry middleware, resource templates, and client disconnect handling.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScope tasks to authorization context, not session by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3800\"\u003ePrefectHQ/fastmcp#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydocket\u0026gt;=0.19.0, drop fakeredis pin by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3822\"\u003ePrefectHQ/fastmcp#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd real-world schema crash test (232K schemas from APIs.guru) by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3826\"\u003ePrefectHQ/fastmcp#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 7 zero-violation ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3841\"\u003ePrefectHQ/fastmcp#3841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePromote 7 ty rules from ignore to warn by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3852\"\u003ePrefectHQ/fastmcp#3852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace ___ with hash-based backend tool routing and per-tool prefab resources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3824\"\u003ePrefectHQ/fastmcp#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable 4 ruff rules (DTZ, ERA, ISC, INP) and fix 9 violations by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3842\"\u003ePrefectHQ/fastmcp#3842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract parameter descriptions from docstrings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3872\"\u003ePrefectHQ/fastmcp#3872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up schema crash test (CSafeLoader + xdist-safe aggregation) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3873\"\u003ePrefectHQ/fastmcp#3873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: bump OpenAPI init perf threshold to 200ms for Windows CI by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3879\"\u003ePrefectHQ/fastmcp#3879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: unify object-schema conversion through _object_schema_to_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3884\"\u003ePrefectHQ/fastmcp#3884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Keycloak OAuth Provider for Enterprise Authentication and local dev by \u003ca href=\"https://github.com/stephaneberle9\"\u003e\u003ccode\u003e@​stephaneberle9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1937\"\u003ePrefectHQ/fastmcp#1937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow auth providers to override protected resource base URLs by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3900\"\u003ePrefectHQ/fastmcp#3900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable PERF and T20 ruff rules by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3845\"\u003ePrefectHQ/fastmcp#3845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd response_title and response_description to ctx.elicit() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3912\"\u003ePrefectHQ/fastmcp#3912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate ctx.elicit() without response_type by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3916\"\u003ePrefectHQ/fastmcp#3916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity 🔒\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate actual base64 data size in FileUpload, not client-reported size by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3816\"\u003ePrefectHQ/fastmcp#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop forwarding inbound HTTP headers to unrelated remote servers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3837\"\u003ePrefectHQ/fastmcp#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuthKit: auto-bind token audience to resource URL (RFC 8707) by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3905\"\u003ePrefectHQ/fastmcp#3905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersion-check is_docket_available() to avoid transitive pydocket crash by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3807\"\u003ePrefectHQ/fastmcp#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: materialize generators before result conversion, handle bytes gracefully by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3830\"\u003ePrefectHQ/fastmcp#3830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix json_schema_to_type crashes on keywords, boolean schemas, empty enums, and name collisions by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3818\"\u003ePrefectHQ/fastmcp#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace \u003ccode\u003eor\u003c/code\u003e with \u003ccode\u003eis not None\u003c/code\u003e checks for config/override merging by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3833\"\u003ePrefectHQ/fastmcp#3833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: TransformedTool sync fn crash and schema mutation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3823\"\u003ePrefectHQ/fastmcp#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cross-provider duplicate detection, error visibility, mask propagation by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3827\"\u003ePrefectHQ/fastmcp#3827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't pass HTTP kwargs when transport is unspecified by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3838\"\u003ePrefectHQ/fastmcp#3838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip title fields from tool schemas for Gemini 2.5 Flash compatibility by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3861\"\u003ePrefectHQ/fastmcp#3861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: retry when LLM returns text instead of calling final_response by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3850\"\u003ePrefectHQ/fastmcp#3850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on unhandled content types in sampling handler dispatch chains by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3857\"\u003ePrefectHQ/fastmcp#3857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken code examples in docs by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3869\"\u003ePrefectHQ/fastmcp#3869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: GoogleGenaiSamplingHandler leaks thought parts and gives unhelpful errors on empty responses by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3849\"\u003ePrefectHQ/fastmcp#3849\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/PrefectHQ/fastmcp/commit/7d7607473d7713d9937cbbbe0bfc635976c511d3\"\u003e\u003ccode\u003e7d76074\u003c/code\u003e\u003c/a\u003e Stop pydantic 2.13 from leaking _WrappedResult docstring into tool output sch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/b732a4a516e4a41f053e46dbd86e9520cf5178bf\"\u003e\u003ccode\u003eb732a4a\u003c/code\u003e\u003c/a\u003e Overhaul apps docs (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/5c2ff1bd7b9844a3891149741de56a5e4d24621d\"\u003e\u003ccode\u003e5c2ff1b\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f4f2ec07fbb611a25ce27e1b4f9b67f54bc2420a\"\u003e\u003ccode\u003ef4f2ec0\u003c/code\u003e\u003c/a\u003e Deprecate ctx.elicit() without response_type (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/338b80c3ae3b8c5ac3a7e094178c9f34eb286ea8\"\u003e\u003ccode\u003e338b80c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/110cd3adcb7a433923ed8ed4a8b23d076a313ab5\"\u003e\u003ccode\u003e110cd3a\u003c/code\u003e\u003c/a\u003e Add response_title and response_description to ctx.elicit() (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/311784617639d7b46490d863f2e4bb24be6361c5\"\u003e\u003ccode\u003e3117846\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/031c7e03b48330345bc4d1f82a9cc78ed269b07c\"\u003e\u003ccode\u003e031c7e0\u003c/code\u003e\u003c/a\u003e Fix RetryMiddleware not retrying tool errors (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3858\"\u003e#3858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/200d79e7d28f36b36c271621d9550aa3fb3c0aa7\"\u003e\u003ccode\u003e200d79e\u003c/code\u003e\u003c/a\u003e Enable PERF and T20 ruff rules (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/82f310fe61dba25de34f2be3e203555ccfc4181d\"\u003e\u003ccode\u003e82f310f\u003c/code\u003e\u003c/a\u003e AuthKit: auto-bind token audience to resource URL (RFC 8707) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3905\"\u003e#3905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\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/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.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/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.5 to 7.0.6\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\u003ev7.0.6 (2026-04-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate project URLs.\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/28d4506f2a49d781ffbcecb095fa7aba5bb80aff\"\u003e\u003ccode\u003e28d4506\u003c/code\u003e\u003c/a\u003e Release v7.0.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51921a4812b3304be9625ed004f024935a8036af\"\u003e\u003ccode\u003e51921a4\u003c/code\u003e\u003c/a\u003e Remove _TimedCache default timer to simplify type stubs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a4249f6aa3b4cb2fe287b08631c308bb88b9396c\"\u003e\u003ccode\u003ea4249f6\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.5.2 to 6.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/aa87283858f09b6820103373b7623d4ef51d233f\"\u003e\u003ccode\u003eaa87283\u003c/code\u003e\u003c/a\u003e feat: update project URLs in pyproject.toml to show on pypi.org (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.5...v7.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.6.0 to 6.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.7.0] - 2026-04-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. S...\n\n_Description has been truncated_","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5296/packages"}},{"old_version":"4.16.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-14T19:49:37.000Z","version_change":"4.16.0 → 4.43.0","issue":{"uuid":"4264379416","node_id":"PR_kwDOSCt5OM7Sa7pO","number":2,"state":"open","title":"build(deps): Bump the minor-and-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-14T19:49:37.000Z","updated_at":"2026-04-14T22:17:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"minor-and-patch","update_count":6,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"beautifulsoup4","old_version":"4.12.3","new_version":"4.14.3"},{"name":"selenium","old_version":"4.16.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"schedule","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/dbader/schedule"},{"name":"python-jobspy","old_version":"1.1.75","new_version":"1.1.82","repository_url":"https://github.com/cullenwatson/JobSpy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.12.3` | `4.14.3` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.16.0` | `4.43.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [schedule](https://github.com/dbader/schedule) | `1.2.1` | `1.2.2` |\n| [python-jobspy](https://github.com/cullenwatson/JobSpy) | `1.1.75` | `1.1.82` |\n\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.12.3 to 4.14.3\n\nUpdates `selenium` from 4.16.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.16.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.0 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `schedule` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbader/schedule/blob/master/HISTORY.rst\"\u003eschedule's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.2 (2024-05-25)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix bugs in cross-timezone scheduling (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/601\"\u003e#601\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/602\"\u003e#602\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/604\"\u003e#604\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/dbader/schedule/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on old mock (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/622\"\u003e#622\u003c/a\u003e) Thanks \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/82a43db1b938d8fdf60103bd41f329e06c8d3651\"\u003e\u003ccode\u003e82a43db\u003c/code\u003e\u003c/a\u003e Release 1.2.2 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/625\"\u003e#625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/2dcb5833cdf2b7d7a1bda90c19e2fb7e373e66df\"\u003e\u003ccode\u003e2dcb583\u003c/code\u003e\u003c/a\u003e Timezone bugfixes (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/4386f4562df3ed24fd198324e279d215db2154d6\"\u003e\u003ccode\u003e4386f45\u003c/code\u003e\u003c/a\u003e remove dependency on old mock (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/1173f2820b6e996fd80c51e61353a31a4c260b3b\"\u003e\u003ccode\u003e1173f28\u003c/code\u003e\u003c/a\u003e Add support for 3.12 (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/a38862005fb775521d5482e5be4affcd10eebb15\"\u003e\u003ccode\u003ea388620\u003c/code\u003e\u003c/a\u003e Improved timezones handling in next_run (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/073dbc6e5f8254d27c656f88a5062cca2cdfc4a2\"\u003e\u003ccode\u003e073dbc6\u003c/code\u003e\u003c/a\u003e Add more timezone tests (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbader/schedule/commit/2984ec925bb4d40a68ee3d697739149fa677f475\"\u003e\u003ccode\u003e2984ec9\u003c/code\u003e\u003c/a\u003e Fix docs, added pytz as dependency when working with timezones (\u003ca href=\"https://redirect.github.com/dbader/schedule/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/dbader/schedule/compare/1.2.1...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-jobspy` from 1.1.75 to 1.1.82\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cullenwatson/JobSpy/releases\"\u003epython-jobspy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.79\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNaukri support - India's top job board\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ethanks \u003ca href=\"https://github.com/lijuuu\"\u003e\u003ccode\u003e@​lijuuu\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.77\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efetch jobs from \u003ca href=\"https://www.bayt.com/\"\u003eBayt.com: The Middle East's Leading Job Site\u003c/a\u003e. Currently just supports the search_term parameter and searches internationally\u003c/li\u003e\n\u003cli\u003eremoved logs by default. do verbose=2 to show\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ethanks \u003ca href=\"https://github.com/aHishamm\"\u003e\u003ccode\u003e@​aHishamm\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/abd587823831605a646a355a05d25b48a07e0865\"\u003e\u003ccode\u003eabd5878\u003c/code\u003e\u003c/a\u003e chore:readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/ae2b1ea42c46fbf069be30d26c46b48e478e709d\"\u003e\u003ccode\u003eae2b1ea\u003c/code\u003e\u003c/a\u003e Bdjobs Fixed (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/53b3b413855d3656bbbcef52531c5699506b2f19\"\u003e\u003ccode\u003e53b3b41\u003c/code\u003e\u003c/a\u003e fix: glassdoor ua\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/9aae02453da3340440e4e4d96c7789466db65c51\"\u003e\u003ccode\u003e9aae024\u003c/code\u003e\u003c/a\u003e issue#270: glassdoor 403 response by rotating user-agent and updating headers...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/94d413bad112107f3a51ad5facaf8c74d30f5cdb\"\u003e\u003ccode\u003e94d413b\u003c/code\u003e\u003c/a\u003e support for socks5 proxies (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/61205bcc77fd26e43ed538272e36199205cf39e5\"\u003e\u003ccode\u003e61205bc\u003c/code\u003e\u003c/a\u003e chore: version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/f1602eca70378ea840c712fedcf6555d4d30325a\"\u003e\u003ccode\u003ef1602ec\u003c/code\u003e\u003c/a\u003e Fix date parsing error: prevent negative days by using timedelta (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/d4d52d05f59029e1295ba569a494a4ce851b259f\"\u003e\u003ccode\u003ed4d52d0\u003c/code\u003e\u003c/a\u003e chore:version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/0946cb33735170aa156d4380acbd2246ca61277f\"\u003e\u003ccode\u003e0946cb3\u003c/code\u003e\u003c/a\u003e feat: add naukri.com support (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/speedyapply/JobSpy/commit/051981689fc4fc7a18bdfa806b1727fe90066aef\"\u003e\u003ccode\u003e0519816\u003c/code\u003e\u003c/a\u003e Update util.py (\u003ca href=\"https://redirect.github.com/cullenwatson/JobSpy/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cullenwatson/JobSpy/compare/1.1.75...1.1.82\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tchoungageslin-blip/Joby/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchoungageslin-blip%2FJoby/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-14T07:05:23.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4260108102","node_id":"PR_kwDOPVEyVc7SOKtf","number":161,"state":"closed","title":"Bump the python group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-15T07:04:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T07:05:23.000Z","updated_at":"2026-04-15T07:04:26.000Z","time_to_close":86341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":8,"packages":[{"name":"authlib","old_version":"1.6.9","new_version":"1.6.10","repository_url":"https://github.com/authlib/authlib"},{"name":"django-allauth","old_version":"65.15.1","new_version":"65.16.0"},{"name":"lxml","old_version":"6.0.2","new_version":"6.0.4","repository_url":"https://github.com/lxml/lxml"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [authlib](https://github.com/authlib/authlib) | `1.6.9` | `1.6.10` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.15.1` | `65.16.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.2` | `6.0.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.58.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n\n\nUpdates `authlib` from 1.6.9 to 1.6.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.10\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eUnsupportedResponseTypeError\u003c/code\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/authlib/authlib/blob/v1.6.10/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.10\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Apr 13, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eUnsupportedResponseTypeError\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/authlib/authlib/commit/ef09aebbba4439dedb22bd15777d1b3458b6f0ab\"\u003e\u003ccode\u003eef09aeb\u003c/code\u003e\u003c/a\u003e chore: release 1.6.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/3be08468201a7766a93012ce149ea12822cab096\"\u003e\u003ccode\u003e3be0846\u003c/code\u003e\u003c/a\u003e fix: redirecting to unvalidated redirect_uri on UnsupportedResponseTypeError\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.15.1 to 65.16.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 `lxml` from 6.0.2 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.4 (2026-04-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2148019: Spurious MemoryError during namespace cleanup.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.0.3 (2026-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral out of memory error cases now raise \u003ccode\u003eMemoryError\u003c/code\u003e that were not handled before.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSlicing with large step values (outside of \u003ccode\u003e+/- sys.maxsize\u003c/code\u003e) could trigger undefined C behaviour.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125399: Some failing tests were fixed or disabled in PyPy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2138421: Memory leak in error cases when setting the \u003ccode\u003epublic_id\u003c/code\u003e or \u003ccode\u003esystem_url\u003c/code\u003e of a document.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMemory leak in case of a memory allocation failure when copying document subtrees.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen mapping an XPath result to Python failed, the result memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen preparing an XSLT transform failed, the XSLT parameter memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.2.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use zlib 1.3.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/1fd1d6bc300bcd9a41def810c5fc3223811b579e\"\u003e\u003ccode\u003e1fd1d6b\u003c/code\u003e\u003c/a\u003e Fix release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/515485906ccdd89b61088e390f65f39e4c205158\"\u003e\u003ccode\u003e5154859\u003c/code\u003e\u003c/a\u003e CI: Include all library versions in libs cache key to asssure updated on vers...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6a606f32724060fe0465cd38d6fb7e6e22e7ef81\"\u003e\u003ccode\u003e6a606f3\u003c/code\u003e\u003c/a\u003e Add \u0026quot;doesn't crash\u0026quot; tests for LP#2148019.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/f488f16d20014c0dfde59cd2930b41604bcc3c8d\"\u003e\u003ccode\u003ef488f16\u003c/code\u003e\u003c/a\u003e Prepare release of 6.0.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/1255d98f168672639c46cb6419a97e31026e8086\"\u003e\u003ccode\u003e1255d98\u003c/code\u003e\u003c/a\u003e LP#2148019: Prevent spurious MemoryError during namespace cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/03b0c4aa1aded486f2e4a04cf5c329524df73c57\"\u003e\u003ccode\u003e03b0c4a\u003c/code\u003e\u003c/a\u003e Remove dead type check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a6f833c7e187c17d5087d29227e066d94490280f\"\u003e\u003ccode\u003ea6f833c\u003c/code\u003e\u003c/a\u003e Fix release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/973d059449a66799f468b46f4b12c95e32cff5e9\"\u003e\u003ccode\u003e973d059\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9044a52ce26a3ccf48b6cad8031234a0ddf7612b\"\u003e\u003ccode\u003e9044a52\u003c/code\u003e\u003c/a\u003e Build: Downgrade libiconv to 1.18 since 1.19 does not build reliably.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a34dfdd593368fc444f6b66d03fd60d76966c9d2\"\u003e\u003ccode\u003ea34dfdd\u003c/code\u003e\u003c/a\u003e Build: Upgrade libiconv to 1.19.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.57.0 to 2.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.58.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Redact base64 data URLs in image_url content blocks by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5953\"\u003e#5953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(integrations) Instrument pyreqwest tracing by \u003ca href=\"https://github.com/servusdei2018\"\u003e\u003ccode\u003e@​servusdei2018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5682\"\u003e#5682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Add async callbacks by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5969\"\u003e#5969\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCapture exceptions for \u003ccode\u003estream()\u003c/code\u003e calls by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5950\"\u003e#5950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5717\"\u003e#5717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly finish relevant spans in .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5716\"\u003e#5716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdapt import for new library versions by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5984\"\u003e#5984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse first-class hooks when available by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5947\"\u003e#5947\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(huggingface_hub) Stop setting transaction status when a child span fails by \u003ca href=\"https://github.com/Zenithatic\"\u003e\u003ccode\u003e@​Zenithatic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5952\"\u003e#5952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(litellm) Avoid double span exits when streaming by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5933\"\u003e#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5963\"\u003e#5963\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eLitellm\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5975\"\u003e#5975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5970\"\u003e#5970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming \u003ccode\u003ecompletion()\u003c/code\u003e tests by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5937\"\u003e#5937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5985\"\u003e#5985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Remove \u003ccode\u003egen_ai.tool.type\u003c/code\u003e span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5964\"\u003e#5964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Separate sync and async .create() patches by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5715\"\u003e#5715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Split token counting by API for easier deprecation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5930\"\u003e#5930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai-agents) Remove error attributes by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5986\"\u003e#5986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(opentelemetry) Ignore mypy error by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5927\"\u003e#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🤖 Update test matrix with new releases (04/13) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5983\"\u003e#5983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix license metadata in setup.py by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5934\"\u003e#5934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate validate-pr workflow by \u003ca href=\"https://github.com/stephanie-anderson\"\u003e\u003ccode\u003e@​stephanie-anderson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5931\"\u003e#5931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eNone\u003c/code\u003e span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5967\"\u003e#5967\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/getsentry/sentry-python/commit/ce445d96977ec083b97495c917aa0c3ce453689d\"\u003e\u003ccode\u003ece445d9\u003c/code\u003e\u003c/a\u003e release: 2.58.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c0e9cfc8536f0d9ba22925e4bea17034138cd0\"\u003e\u003ccode\u003ec0c0e9c\u003c/code\u003e\u003c/a\u003e feat(litellm): Add async callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5969\"\u003e#5969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ea74b63881d2cf1d71130a8b6ef4dfff4e4cd337\"\u003e\u003ccode\u003eea74b63\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in rate-limit test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5975\"\u003e#5975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/06ed1bca2f9302055ba43dc058f5afcc731b8d79\"\u003e\u003ccode\u003e06ed1bc\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in embedding tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66ef2e6976a1ae86e97aca08cbc806f9e579f324\"\u003e\u003ccode\u003e66ef2e6\u003c/code\u003e\u003c/a\u003e test(litellm): Replace mocks with \u003ccode\u003ehttpx\u003c/code\u003e types in nonstreaming `completion()...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/96ebbf67d91146ebb30be6e0898a637ea6c2c697\"\u003e\u003ccode\u003e96ebbf6\u003c/code\u003e\u003c/a\u003e fix(litellm): Avoid double span exits when streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e22b5dc3447a5bee71574a5c22934e5aa8a7642\"\u003e\u003ccode\u003e7e22b5d\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 8.0.0 to 9.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5979\"\u003e#5979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35151a90a98affa0d72f7cb8b314a8fb54ac8b51\"\u003e\u003ccode\u003e35151a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5980\"\u003e#5980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d1c5b53096e76353e2aa3ffdd8a845f38bb04bb6\"\u003e\u003ccode\u003ed1c5b53\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5981\"\u003e#5981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e255aafa913955eed43333aa204f1476d9dc1ff2\"\u003e\u003ccode\u003ee255aaf\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 6b1f51ec8af03e19...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.57.0...2.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/danielmcquillen/validibot/pull/161","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielmcquillen%2Fvalidibot/issues/161","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/161/packages"}},{"old_version":"4.41.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-13T21:17:16.000Z","version_change":"4.41.0 → 4.43.0","issue":{"uuid":"4257946385","node_id":"PR_kwDOQYTN0c7SHuMI","number":5281,"state":"closed","title":"deps(python): bump the python-minor group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T22:16:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:17:16.000Z","updated_at":"2026-04-20T22:16:18.000Z","time_to_close":608341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":7,"packages":[{"name":"fastmcp","old_version":"3.2.0","new_version":"3.2.3","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"anthropic","old_version":"0.89.0","new_version":"0.94.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"selenium","old_version":"4.41.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.89.0` | `0.94.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.41.0` | `4.43.0` |\n\nUpdates `fastmcp` from 3.2.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.3: Redis or Not\u003c/h2\u003e\n\u003cp\u003efakeredis 2.35.0 shipped an undocumented rename (\u003ccode\u003eFakeConnection\u003c/code\u003e → \u003ccode\u003eFakeAsyncRedisConnection\u003c/code\u003e) that broke pydocket's \u003ccode\u003ememory://\u003c/code\u003e backend, causing \u003ccode\u003efastmcp[tasks]\u003c/code\u003e installs to fail at startup with an \u003ccode\u003eImportError\u003c/code\u003e. This pins \u003ccode\u003efakeredis\u0026lt;2.35.0\u003c/code\u003e in the \u003ccode\u003etasks\u003c/code\u003e extra as a stopgap until a fixed pydocket ships.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin fakeredis\u0026lt;2.35.0 in tasks extra by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3804\"\u003ePrefectHQ/fastmcp#3804\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument session state isolation across mount boundaries by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3801\"\u003ePrefectHQ/fastmcp#3801\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.2...v3.2.3\"\u003ehttps://github.com/PrefectHQ/fastmcp/compare/v3.2.2...v3.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.2: Audience Appreciation\u003c/h2\u003e\n\u003cp\u003eThe Azure audience fix in 3.2.1 overcorrected: it switched token validation from \u003ccode\u003eclient_id\u003c/code\u003e to \u003ccode\u003eidentifier_uri\u003c/code\u003e, which fixed custom Application ID URIs but broke the default case where Azure AD v2 tokens set \u003ccode\u003eaud\u003c/code\u003e to the bare client ID GUID. Both formats are now accepted.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: accept both client_id and identifier_uri as Azure audience by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3797\"\u003ePrefectHQ/fastmcp#3797\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies 📦\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the uv group across 2 directories with 1 update 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/PrefectHQ/fastmcp/pull/3795\"\u003ePrefectHQ/fastmcp#3795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.1...v3.2.2\"\u003ehttps://github.com/PrefectHQ/fastmcp/compare/v3.2.1...v3.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1: Audience Participation\u003c/h2\u003e\n\u003cp\u003eMost of the fixes in this patch are about auth providers getting audience validation wrong. Cognito token verification was checking the \u003ccode\u003eaud\u003c/code\u003e JWT claim, but Cognito access tokens don't include one; they use \u003ccode\u003eclient_id\u003c/code\u003e instead. Azure was hardcoding the raw client ID as the expected audience, ignoring the \u003ccode\u003eidentifier_uri\u003c/code\u003e parameter even though Entra v2.0 tokens use the Application ID URI as \u003ccode\u003eaud\u003c/code\u003e. Both now validate correctly without changing the provider API. Consent cookies also had an unbounded growth problem in high-DCR-client environments, eventually blowing past reverse proxy header limits; they're now capped as an LRU.\u003c/p\u003e\n\u003cp\u003eOn the OpenAPI side, \u003ccode\u003enullable: true\u003c/code\u003e fields from 3.0 specs were leaking into tool input schemas as-is instead of being converted to JSON Schema's \u003ccode\u003etype: [\u0026quot;string\u0026quot;, \u0026quot;null\u0026quot;]\u003c/code\u003e. Server variable templates in base URLs (like \u003ccode\u003ehttps://{region}.api.example.com\u003c/code\u003e) were also being passed through raw instead of substituted with their defaults.\u003c/p\u003e\n\u003cp\u003eSmaller fixes: form submissions from Prefab UI now correctly handle unchecked boolean checkboxes, the client no longer crashes on error responses with empty or non-text content from third-party servers, and \u003ccode\u003easyncio.iscoroutinefunction\u003c/code\u003e no longer emits deprecation warnings on Python 3.14.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(google): use sub (user ID) for client_id instead of aud (app ID) by \u003ca href=\"https://github.com/shigechika\"\u003e\u003ccode\u003e@​shigechika\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3722\"\u003ePrefectHQ/fastmcp#3722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove CSP from tool metadata, keep on resource only by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3754\"\u003ePrefectHQ/fastmcp#3754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[codex] Add FastMCP docs telemetry by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3727\"\u003ePrefectHQ/fastmcp#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: split SDK navigation into standalone $ref file by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3773\"\u003ePrefectHQ/fastmcp#3773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bump ty to \u0026gt;=0.0.29 and suppress new false positives by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3790\"\u003ePrefectHQ/fastmcp#3790\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: use explicit None checks for JWT exp validation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3724\"\u003ePrefectHQ/fastmcp#3724\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/PrefectHQ/fastmcp/commit/d1adb041eab26ee2d4b837c0a13bebe9af7f6fc7\"\u003e\u003ccode\u003ed1adb04\u003c/code\u003e\u003c/a\u003e Pin fakeredis\u0026lt;2.35.0 in tasks extra (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/0194c6e8ea905b1799cafe2d063dae1e461acf5f\"\u003e\u003ccode\u003e0194c6e\u003c/code\u003e\u003c/a\u003e Document session state isolation across mount boundaries (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3801\"\u003e#3801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6592aaa70e979aab0112165ed922ce92f03adaf8\"\u003e\u003ccode\u003e6592aaa\u003c/code\u003e\u003c/a\u003e fix: accept both client_id and identifier_uri as Azure audience (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3797\"\u003e#3797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/9f0d8d3d125cce605227913baa62f34468361e71\"\u003e\u003ccode\u003e9f0d8d3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 2 directories with 1 update (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3795\"\u003e#3795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/556fd8fa42707774ce92899ba2049d8012035953\"\u003e\u003ccode\u003e556fd8f\u003c/code\u003e\u003c/a\u003e Harden client tool result error handling (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/e064ba69de0d454416dc000fd7fa2c95efe00709\"\u003e\u003ccode\u003ee064ba6\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3791\"\u003e#3791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/a3c5cc12d3daf7d65f824f2b8a7c553b96b98243\"\u003e\u003ccode\u003ea3c5cc1\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f5be772403011c8518b78789a26eeab714d7fcee\"\u003e\u003ccode\u003ef5be772\u003c/code\u003e\u003c/a\u003e fix: bump ty to \u0026gt;=0.0.29 and suppress new false positives (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3790\"\u003e#3790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f14456d63af321f6c30e034a89ea441385970c80\"\u003e\u003ccode\u003ef14456d\u003c/code\u003e\u003c/a\u003e docs: document forward_resource parameter on OAuthProxy (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/2b9d3eee0f93931deb031f424bef193e98f27204\"\u003e\u003ccode\u003e2b9d3ee\u003c/code\u003e\u003c/a\u003e fix: use identifier_uri as audience for Azure token validation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.0...v3.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.89.0 to 0.94.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.93.0\u003c/h2\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.92.0\u003c/h2\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\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/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\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/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/42ee3dab539d6346505bae13745d34fe91c1946e\"\u003e\u003ccode\u003e42ee3da\u003c/code\u003e\u003c/a\u003e docs: update examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c8a8c9ec660108666baf96acd4aab08d41027af\"\u003e\u003ccode\u003e0c8a8c9\u003c/code\u003e\u003c/a\u003e fix: ensure file data are only sent as 1 parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9092064e862fe03afbca1740cbc21d20edcb4984\"\u003e\u003ccode\u003e9092064\u003c/code\u003e\u003c/a\u003e feat: vertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/25b6c31ca04c107c9b31d61e13ad69a1598ff65f\"\u003e\u003ccode\u003e25b6c31\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/717f90bf95b0dd3e1fefb2df06c022f16a03ee96\"\u003e\u003ccode\u003e717f90b\u003c/code\u003e\u003c/a\u003e release: 0.93.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c10155947d844c7545b533bb62748e4381d5d7c5\"\u003e\u003ccode\u003ec101559\u003c/code\u003e\u003c/a\u003e feat(api): Add beta advisor tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5a290a8defab65e68d240116cbefa85987253946\"\u003e\u003ccode\u003e5a290a8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.94.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.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.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.6.0 to 6.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.7.0] - 2026-04-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003efacet_row\u003c/code\u003e support to \u003ccode\u003epx.imshow\u003c/code\u003e for creating subplots along an additional dimension [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5445\"\u003e#5445\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/FBumann\"\u003e\u003ccode\u003e@​FBumann\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumpy.percentile\u003c/code\u003e syntax to stop using deprecated alias [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5483\"\u003e#5483\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e for the contribution!\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumpy\u003c/code\u003e with a version less than 1.22 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHandle empty \u003ccode\u003epx.histogram\u003c/code\u003e by skipping \u003ccode\u003eNone\u003c/code\u003e label in hover template [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5535\"\u003e#5535\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/tysoncung\"\u003e\u003ccode\u003e@​tysoncung\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.4.0 to version 3.5.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.5.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5565\"\u003e#5565\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehoveranywhere\u003c/code\u003e and \u003ccode\u003eclickanywhere\u003c/code\u003e layout attributes to enable emitting hover and click events anywhere in the plot area, not just over traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7707\"\u003e#7707\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edisplayNotifier\u003c/code\u003e configuration property to set the display of notifier in the top right area of the viewport [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7730\"\u003e#7730\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate USA location lookup for \u003ccode\u003escattergeo\u003c/code\u003e and \u003ccode\u003echoropleth\u003c/code\u003e traces to use both location names and abbreviations [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7731\"\u003e#7731\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1a2065a6ac1eabf8c3125bcb735fbc04d7cd8441\"\u003e\u003ccode\u003e1a2065a\u003c/code\u003e\u003c/a\u003e Add missing attributions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/8422e175d40bb24277c2ab65db91fab2e2c60c20\"\u003e\u003ccode\u003e8422e17\u003c/code\u003e\u003c/a\u003e Add missing octothorpes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/fa9116fd56cff6377a40c76b77b538fbe4931751\"\u003e\u003ccode\u003efa9116f\u003c/code\u003e\u003c/a\u003e Update Jupyter Lab extension files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/c771ad5c15d0b0773171d212d1b79836616076f1\"\u003e\u003ccode\u003ec771ad5\u003c/code\u003e\u003c/a\u003e Version changes for v6.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/067b95421c00a03023b43b6faca8112652b26379\"\u003e\u003ccode\u003e067b954\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5565\"\u003e#5565\u003c/a\u003e from plotly/cam/update-plotly.js-v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1b7de492ead91eb28bfa3bd9208078ff453a1657\"\u003e\u003ccode\u003e1b7de49\u003c/code\u003e\u003c/a\u003e Update Jupyter support files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/d605d3e9978928d111b3e2b5a10c70810b44a10d\"\u003e\u003ccode\u003ed605d3e\u003c/code\u003e\u003c/a\u003e chore: Update plotly.js to v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/600f86527341bc5f1809725e2831d846c3e054b4\"\u003e\u003ccode\u003e600f865\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5541\"\u003e#5541\u003c/a\u003e from plotly/migrate-to-gh-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/10c7c5611ca04639313674cca3814f742cac523d\"\u003e\u003ccode\u003e10c7c56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5518\"\u003e#5518\u003c/a\u003e from mosh3eb/fix/broken-license-link-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/ea813dd062be4918dc35944fc62226d809e9fc65\"\u003e\u003ccode\u003eea813dd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix/broken-license-link-readme\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.6.0...v6.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium` from 4.41.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.41.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MarkusNeusinger/anyplot/pull/5281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusNeusinger%2Fanyplot/issues/5281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5281/packages"}},{"old_version":"4.42.0","new_version":"4.43.0","update_type":"minor","path":"the pip-all group","pr_created_at":"2026-04-13T02:25:06.000Z","version_change":"4.42.0 → 4.43.0","issue":{"uuid":"4250849765","node_id":"PR_kwDOB1SzD87R2VV6","number":349,"state":"open","title":"Bump selenium from 4.42.0 to 4.43.0 in the pip-all group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:25:06.000Z","updated_at":"2026-04-13T02:25:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.42.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"the pip-all group","ecosystem":"pip"},"body":"Bumps the pip-all group with 1 update: [selenium](https://github.com/SeleniumHQ/Selenium).\n\nUpdates `selenium` from 4.42.0 to 4.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.42.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/rodlukas/UP-admin/pull/349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlukas%2FUP-admin/issues/349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/349/packages"}},{"old_version":"4.34.0","new_version":"4.43.0","update_type":"minor","path":null,"pr_created_at":"2026-04-13T01:53:33.000Z","version_change":"4.34.0 → 4.43.0","issue":{"uuid":"4250738089","node_id":"PR_kwDOKbD_GM7R2ET6","number":87,"state":"closed","title":"Bump selenium from 4.34.0 to 4.43.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T02:14:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T01:53:33.000Z","updated_at":"2026-05-18T02:14:53.000Z","time_to_close":3025278,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.34.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":null,"ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.34.0 to 4.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.34.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.34.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/RAHB-REALTORS-Association/selenium-screenshots/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RAHB-REALTORS-Association%2Fselenium-screenshots/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"}},{"old_version":"4.5.0","new_version":"4.43.0","update_type":"minor","path":"/tools","pr_created_at":"2026-04-13T00:06:07.000Z","version_change":"4.5.0 → 4.43.0","issue":{"uuid":"4250385202","node_id":"PR_kwDOIQ0O_s7R1Sef","number":1477,"state":"closed","title":"Bump selenium from 4.5.0 to 4.43.0 in /tools","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-13T01:27:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T00:06:07.000Z","updated_at":"2026-05-13T01:27:01.000Z","time_to_close":2596853,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"selenium","old_version":"4.5.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/Selenium"}],"path":"/tools","ecosystem":"pip"},"body":"Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.5.0 to 4.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/Selenium/releases\"\u003eselenium's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.43.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSelenium 4.42.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[rust][rb] Update lock files with new versions by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17118\"\u003eSeleniumHQ/selenium#17118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unify all event arguments to be *EventArgs by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17125\"\u003eSeleniumHQ/selenium#17125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Add return type annotation to execute_script and execute_async_script by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17117\"\u003eSeleniumHQ/selenium#17117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Expose functionality via interface by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17127\"\u003eSeleniumHQ/selenium#17127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Unregister cancelled commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17129\"\u003eSeleniumHQ/selenium#17129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Properly handle websocket close handshake by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17132\"\u003eSeleniumHQ/selenium#17132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[ruby] fix linter error in \u003ccode\u003e./go authors\u003c/code\u003e script by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17136\"\u003eSeleniumHQ/selenium#17136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[nodejs] Color Class for Javascript library by \u003ca href=\"https://github.com/BckupMuthu\"\u003e\u003ccode\u003e@​BckupMuthu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16944\"\u003eSeleniumHQ/selenium#16944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;or\u0026quot; condition by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17135\"\u003eSeleniumHQ/selenium#17135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Improve screenshot error message by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17120\"\u003eSeleniumHQ/selenium#17120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix \u0026quot;Don't serialize binary stream - it might be large\u0026quot; when using \u003ccode\u003eRemoteWebDriver.builder()\u003c/code\u003e by \u003ca href=\"https://github.com/tim-burke-systemware\"\u003e\u003ccode\u003e@​tim-burke-systemware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17139\"\u003eSeleniumHQ/selenium#17139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Wait until events are dispatched when unsubscribing by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17142\"\u003eSeleniumHQ/selenium#17142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Any WebDriver can be disposed asynchronously by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17119\"\u003eSeleniumHQ/selenium#17119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Router bypass WebSocket data path via transparent TCP tunnel by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17146\"\u003eSeleniumHQ/selenium#17146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Preserve configurable options pattern by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17144\"\u003eSeleniumHQ/selenium#17144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Use portable Ruby by \u003ca href=\"https://github.com/p0deje\"\u003e\u003ccode\u003e@​p0deje\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16936\"\u003eSeleniumHQ/selenium#16936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Guard against NPE in Platform.extractFromSysProperty by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17151\"\u003eSeleniumHQ/selenium#17151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17147\"\u003eSeleniumHQ/selenium#17147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove \u003ccode\u003e@Nullable\u003c/code\u003e from return value for \u003ccode\u003eExpectedConditions\u003c/code\u003e that never return null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17149\"\u003eSeleniumHQ/selenium#17149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Fluent setters in few classes like \u003ccode\u003ePrintOptions\u003c/code\u003e etc. by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17148\"\u003eSeleniumHQ/selenium#17148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add disposed guard by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17161\"\u003eSeleniumHQ/selenium#17161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by \u003ca href=\"https://github.com/seethinajayadileep\"\u003e\u003ccode\u003e@​seethinajayadileep\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17159\"\u003eSeleniumHQ/selenium#17159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in packages \u003ccode\u003eorg.openqa.selenium.chrom*\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17152\"\u003eSeleniumHQ/selenium#17152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNullability for browsers by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17167\"\u003eSeleniumHQ/selenium#17167\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/SeleniumHQ/selenium/commit/dd0f5342f342c9583b2dde8e1619d6babc612ea0\"\u003e\u003ccode\u003edd0f534\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.43.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/Selenium/issues/17329\"\u003e#17329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a38c6222707b1582cf2b4521649ba40077ecb7\"\u003e\u003ccode\u003e52a38c6\u003c/code\u003e\u003c/a\u003e fix(release): add rust:update command to version reset workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7cee048f8a415f273670789bb076a679416a3f77\"\u003e\u003ccode\u003e7cee048\u003c/code\u003e\u003c/a\u003e fix(pypirc): remove setup_pypirc method and update nightly credentials handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8382015adf4becfc90f88cc40193eebcf2496101\"\u003e\u003ccode\u003e8382015\u003c/code\u003e\u003c/a\u003e fix(credentials): add support for nightly PyPI credentials\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/63e8662a74f58a26923f02d523a85d4b006c348a\"\u003e\u003ccode\u003e63e8662\u003c/code\u003e\u003c/a\u003e Update mirror info (Thu Apr  9 18:16:15 UTC 2026)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/5615f6459e028cac09343e95fff0cf0ab3b9cc75\"\u003e\u003ccode\u003e5615f64\u003c/code\u003e\u003c/a\u003e fix(version): update selenium-manager to 0.4.43-nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/98871168e5d3e55e4efafda0ac3e3f7224d09a04\"\u003e\u003ccode\u003e9887116\u003c/code\u003e\u003c/a\u003e fix(release): specify path for downloading release packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e2d089c4c1ffd4ab20c707ac67c460814e9520f8\"\u003e\u003ccode\u003ee2d089c\u003c/code\u003e\u003c/a\u003e fix(dependencies): update selenium-webdriver to 4.43.0.nightly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c68d3debf329f0947dc2791f58d2c9eb26ce5985\"\u003e\u003ccode\u003ec68d3de\u003c/code\u003e\u003c/a\u003e Reverting changes done for 4.42.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/cb536ad6844b3c159901d898de79832d5fd5d20f\"\u003e\u003ccode\u003ecb536ad\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/Selenium/compare/selenium-4.5.0...selenium-4.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=selenium\u0026package-manager=pip\u0026previous-version=4.5.0\u0026new-version=4.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/William3Johnson/wpt/pull/1477","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/William3Johnson%2Fwpt/issues/1477","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1477/packages"}}]}