{"id":1154,"name":"opentelemetry-api","ecosystem":"pip","repository_url":"https://github.com/open-telemetry/opentelemetry-python","issues_count":1023,"created_at":"2025-06-06T15:01:41.029Z","updated_at":"2025-06-06T15:01:41.029Z","purl":"pkg:pypi/opentelemetry-api","metadata":{"id":2840871,"name":"opentelemetry-api","ecosystem":"pypi","description":"OpenTelemetry Python API","homepage":"https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-api","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/open-telemetry/opentelemetry-python","keywords_array":[],"namespace":null,"versions_count":70,"first_release_published_at":"2019-10-01T00:35:15.000Z","latest_release_published_at":"2025-06-04T13:31:02.000Z","latest_release_number":"1.34.0","last_synced_at":"2025-06-06T04:31:01.324Z","created_at":"2022-04-10T11:57:26.058Z","updated_at":"2025-06-06T04:31:01.324Z","registry_url":"https://pypi.org/project/opentelemetry-api/","install_command":"pip install opentelemetry-api --index-url https://pypi.org/simple","documentation_url":"https://opentelemetry-api.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Framework :: OpenTelemetry","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Typing :: Typed"],"normalized_name":"opentelemetry-api"},"repo_metadata":{"id":37396977,"uuid":"185478926","full_name":"open-telemetry/opentelemetry-python","owner":"open-telemetry","description":"OpenTelemetry Python API and SDK ","archived":false,"fork":false,"pushed_at":"2024-08-05T17:26:46.000Z","size":13227,"stargazers_count":1690,"open_issues_count":309,"forks_count":591,"subscribers_count":42,"default_branch":"main","last_synced_at":"2024-08-06T09:10:58.101Z","etag":null,"topics":["correlationcontext","distributed-tracing","logging","metrics","opentelemetry","python","sdk","tracecontext"],"latest_commit_sha":null,"homepage":"https://opentelemetry.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-telemetry.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-07T21:13:30.000Z","updated_at":"2024-08-12T17:44:48.118Z","dependencies_parsed_at":"2024-03-07T05:28:27.882Z","dependency_job_id":"2e69bacd-f88f-4d2d-8b42-01c9e6bb69aa","html_url":"https://github.com/open-telemetry/opentelemetry-python","commit_stats":{"total_commits":1420,"total_committers":206,"mean_commits":6.893203883495145,"dds":0.8422535211267606,"last_synced_commit":"e00306206ea25cf8549eca289e39e0b6ba2fa560"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-telemetry","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215684665,"owners_count":15915906,"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":"open-telemetry","name":"OpenTelemetry - CNCF","uuid":"49998002","kind":"organization","description":"OpenTelemetry makes robust, portable telemetry a built-in feature of cloud-native software.","email":null,"website":"https://opentelemetry.io","location":null,"twitter":"opentelemetry","company":null,"icon_url":"https://avatars.githubusercontent.com/u/49998002?v=4","repositories_count":59,"last_synced_at":"2023-04-09T18:33:45.451Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/open-telemetry","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T16:28:39.566Z","updated_at":"2023-04-09T18:33:46.161Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-telemetry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-telemetry/repositories"},"tags":[{"name":"v1.26.0","sha":"d84fc6cb9425c2f8c42d528108f651e527d81ef5","kind":"commit","published_at":"2024-07-25T03:57:53.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.26.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.26.0/manifests"},{"name":"v1.25.0","sha":"257e6fe3345d42203109128a6ccc9afbb4b777bc","kind":"commit","published_at":"2024-05-30T22:49:16.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.25.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.25.0/manifests"},{"name":"v1.24.0","sha":"01d1d4b1574b18ce73d7ab925f1f7308f8debdee","kind":"commit","published_at":"2024-03-28T19:22:34.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.24.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.24.0/manifests"},{"name":"v1.23.0","sha":"d124bdca463a50cec705fbc3b704b3ab31af8c95","kind":"commit","published_at":"2024-02-23T16:57:25.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.23.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.23.0/manifests"},{"name":"v1.22.0","sha":"e6602ffc7434929fa377beae2f0d14f6d6993997","kind":"commit","published_at":"2023-12-15T22:54:01.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.22.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.22.0/manifests"},{"name":"v1.21.0","sha":"597771edd3a0b646aebd57c0f966f67bbf779f8f","kind":"commit","published_at":"2023-11-07T17:05:53.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.21.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.21.0/manifests"},{"name":"v1.20.0","sha":"9cc5980c47a4f8e64aed12117b32b9088a0d068f","kind":"commit","published_at":"2023-09-04T17:19:48.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.20.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.20.0/manifests"},{"name":"v1.19.0","sha":"7b59b5fd077011d07d89f32a97dfc216e2e9c131","kind":"commit","published_at":"2023-07-13T14:36:47.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.19.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.19.0/manifests"},{"name":"v1.18.0","sha":"91530fdb0c46b6c0d843a6430016d9d5e7b56213","kind":"commit","published_at":"2023-05-11T04:46:21.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.18.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.18.0/manifests"},{"name":"v1.17.0","sha":"9110dae52cf50a1b0ab6d6ee91b3f6583f0d8b1c","kind":"commit","published_at":"2023-03-22T16:29:18.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.17.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"12ea6e320344e8226562ace41c0042c6499d82fa","kind":"commit","published_at":"2023-02-17T18:01:51.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.16.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"19ce12597f56a14c0aa73357c878d5a0358737c4","kind":"commit","published_at":"2022-12-09T21:01:43.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.15.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"19336aac720d451b43f3d4fcc868b50f6b8a4b48","kind":"commit","published_at":"2022-11-03T17:30:14.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.14.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.14.0/manifests"},{"name":"stable","sha":"cd4ccab1841347102b412bdc209a74133b766cea","kind":"commit","published_at":"2022-09-28T12:57:42.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/stable","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/stable","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/stable","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/stable/manifests"},{"name":"v1.13.0","sha":"6a61ebacdcd6e865c6e8d4fc6ea74422ce87820a","kind":"commit","published_at":"2022-09-26T21:27:28.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.13.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.13.0/manifests"},{"name":"v1.12.0","sha":"506300083e4b58947f8de64a9d42be5757fdccdd","kind":"commit","published_at":"2022-08-09T19:32:21.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.12.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0/manifests"},{"name":"v1.12.0rc2","sha":"b9a6358583c0676482a043279c01b252dc6c308e","kind":"commit","published_at":"2022-07-04T13:14:46.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.12.0rc2","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.12.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0rc2/manifests"},{"name":"v1.12.0rc1","sha":"e45d833bd06b9309ce82f8e6085eeb2b7948edad","kind":"commit","published_at":"2022-05-17T19:18:54.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.12.0rc1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.12.0rc1/manifests"},{"name":"v1.11.1","sha":"acaef9675e5e816f387c1eb2fa3c5c15581fc6ff","kind":"commit","published_at":"2022-04-21T20:50:59.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.11.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.11.1/manifests"},{"name":"v1.11.0","sha":"1b00f31114c42ccb2e7da94a99e6e1dc1885c722","kind":"commit","published_at":"2022-04-18T17:04:07.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.11.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.11.0/manifests"},{"name":"v1.10.0","sha":"0b4f247e9d401e94ec77f72ddfcf917298ea27e8","kind":"commit","published_at":"2022-03-10T23:49:47.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.10.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.10.0/manifests"},{"name":"v1.9.1","sha":"37902d0284f86d8ef91ac8d662b99bd3fec5b58c","kind":"commit","published_at":"2022-01-31T09:29:33.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.9.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.9.1/manifests"},{"name":"v1.9.0","sha":"5cd7a74e7fff6ec13bb3853976c117eaaf48bff3","kind":"commit","published_at":"2022-01-26T18:00:31.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.9.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"49e41aa4217c5a2dea937a8c13010e821be5790e","kind":"commit","published_at":"2021-12-17T17:04:09.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.8.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.8.0/manifests"},{"name":"v1.7.1","sha":"281c97bf8f9e31392859e006e13c9c8eac8967c3","kind":"commit","published_at":"2021-11-11T20:00:44.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.7.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"5f8bb78f5bdc5975d7fab44698c333e41596d125","kind":"commit","published_at":"2021-11-11T18:11:50.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.7.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.7.0/manifests"},{"name":"v1.6.2","sha":"6f8ccf35a0ca0426d0f03d2e1d717807ce0d072c","kind":"commit","published_at":"2021-10-19T18:30:14.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.6.2","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"ea00608996efa8c23dd9ec9cb9c5a2045192c547","kind":"commit","published_at":"2021-10-18T19:44:24.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.6.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"e1c4a5b49e30268eba090763e39f6195885b395a","kind":"commit","published_at":"2021-10-13T23:11:59.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.6.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"3b190f5af766294c5064d2787ab6c8681be1619d","kind":"commit","published_at":"2021-08-26T09:24:39.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.5.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.5.0/manifests"},{"name":"v1.4.1","sha":"2cda690f579fa3c06c24a73ed1dca825370e6a4c","kind":"commit","published_at":"2021-07-28T14:34:31.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.4.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"67bbad45917baa354a3a6d0d4361da48ff13fd31","kind":"commit","published_at":"2021-07-19T16:31:03.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.4.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"2b7592dbf948df712594137a3383fab5ab418bbb","kind":"commit","published_at":"2021-06-02T01:23:13.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.3.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"dad4b2ba42a7094f285b6eabf6d86d3ecad3afc5","kind":"commit","published_at":"2021-05-12T03:58:24.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.2.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"7cfce07748dff7f30e74dff50a231875bb106df6","kind":"commit","published_at":"2021-04-20T21:20:08.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.1.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.1.0/manifests"},{"name":"v1.10a0","sha":"ca1e54bd1c74c3bc2e87d88ad17b7054836e9c1e","kind":"commit","published_at":"2021-04-07T16:04:53.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.10a0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.10a0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.10a0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.10a0/manifests"},{"name":"v1.0.0","sha":"b9c0b6f8827895e23eeff1f253f4c502154d1873","kind":"commit","published_at":"2021-03-26T22:54:32.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.0.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.0.0/manifests"},{"name":"v0.19b0","sha":"b9c0b6f8827895e23eeff1f253f4c502154d1873","kind":"commit","published_at":"2021-03-26T22:54:32.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.19b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.19b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.19b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.19b0/manifests"},{"name":"v0.18b0","sha":"32bafc4e793aea70efd93d0916d5f5e848c63a17","kind":"commit","published_at":"2021-02-16T22:19:37.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.18b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.18b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.18b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.18b0/manifests"},{"name":"v1.0.0rc1","sha":"5d47b44d889c2e54fead85a5d0be6e607c223da8","kind":"commit","published_at":"2021-02-12T22:45:36.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v1.0.0rc1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v1.0.0rc1/manifests"},{"name":"v0.17b0","sha":"db9905a164c1f3604eeb8ce5939243948f5be2a8","kind":"commit","published_at":"2021-01-20T23:51:31.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.17b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.17b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.17b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.17b0/manifests"},{"name":"v0.16b1","sha":"974f0b44ee6ef767301f5711f1f6019debbb3fa0","kind":"commit","published_at":"2020-11-27T01:07:57.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.16b1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.16b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.16b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.16b1/manifests"},{"name":"v0.16b0","sha":"ffd94883b5cdc2b969e183593f3f8ed6482e1202","kind":"commit","published_at":"2020-11-26T04:57:30.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.16b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.16b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.16b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.16b0/manifests"},{"name":"v0.15b0","sha":"725655a20b370c5f2efcab6797dd841bad8e8600","kind":"commit","published_at":"2020-11-02T17:00:06.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.15b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.15b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.15b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.15b0/manifests"},{"name":"v0.14b0","sha":"7c361bd277de12015f18304d67a10d6e068312ff","kind":"commit","published_at":"2020-10-13T17:32:46.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.14b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.14b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.14b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.14b0/manifests"},{"name":"v0.13b0","sha":"6c8659b1bb05f92bbd7cf1b66a6e530a8d7508fa","kind":"commit","published_at":"2020-09-17T15:35:59.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.13b0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.13b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.13b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.13b0/manifests"},{"name":"v0.12.0","sha":"6943de7d09d4f91ac55d72fb1da4512ab03f3f21","kind":"commit","published_at":"2020-08-14T23:33:38.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.12.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.12.0/manifests"},{"name":"v0.11.0","sha":"f682cf57a90828f24969281a98980a7dafe0ee26","kind":"commit","published_at":"2020-07-28T20:26:40.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.11.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.11.0/manifests"},{"name":"v0.10.0","sha":"4ede60db108519f51cec2272695bf09d8a374793","kind":"commit","published_at":"2020-06-23T22:01:53.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.10.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.10.0/manifests"},{"name":"v0.9.0","sha":"8c3de78f569604fc0d4237b5e6b9ace1630ce04c","kind":"commit","published_at":"2020-06-11T04:35:03.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.9.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"8d036a215c467ee8521566a2aa4b186abcec12e4","kind":"commit","published_at":"2020-05-27T22:01:25.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.8.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.8.0/manifests"},{"name":"v0.7.1","sha":"25c9fe01d351b93479adbb8121254ea51e3d6254","kind":"commit","published_at":"2020-05-13T00:11:19.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.7.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"8ce88e1b30eee5d2424f1bd6469207ab6ca405a2","kind":"commit","published_at":"2020-05-12T22:17:03.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.7.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"ebdf3da0e5321ea2a77ea711096447a8022c1723","kind":"commit","published_at":"2020-03-31T05:02:26.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.6.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"3bc11a8af368b7639277362c6ea882a60e33a977","kind":"commit","published_at":"2020-03-16T22:46:09.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.5.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.5.0/manifests"},{"name":"v0.4.1","sha":"4743d1e368144fe479aa96056a27d3b800ac357c","kind":"commit","published_at":"2020-03-04T23:11:58.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.4.1","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"b2b0bbebd77a02cebb71ba207e558dae8486ca14","kind":"commit","published_at":"2020-02-21T22:38:30.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.4.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"463dd24d8d55a3bfc1bc41b6575f10fa0f9d825a","kind":"commit","published_at":"2019-12-11T22:32:33.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.3.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"a2a437723f3c314933cfe2b677d399bc9b787160","kind":"commit","published_at":"2019-10-30T01:56:21.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.2.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"bad5938b36824531c58795168caea49ce46af29d","kind":"commit","published_at":"2019-10-01T00:46:45.000Z","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-python/tar.gz/v0.1.0","html_url":"https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-python/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-09-07T01:40:33.872Z","dependent_packages_count":377,"downloads":117697055,"downloads_period":"last-month","dependent_repos_count":3395,"rankings":{"downloads":0.05007272467154677,"dependent_repos_count":0.17259499602903117,"dependent_packages_count":0.07575104501592973,"stargazers_count":2.384782293697623,"forks_count":2.952089756734598,"docker_downloads_count":0.5863827867213737,"average":1.0369456004783504},"purl":"pkg:pypi/opentelemetry-api","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/opentelemetry-api","docker_dependents_count":1039,"docker_downloads_count":392257358,"usage_url":"https://repos.ecosyste.ms/usage/pypi/opentelemetry-api","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/opentelemetry-api/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/opentelemetry-api/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/opentelemetry-api/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/opentelemetry-api/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/opentelemetry-api/related_packages","maintainers":[{"uuid":"LeightonC","login":"LeightonC","name":null,"email":null,"url":null,"packages_count":99,"html_url":"https://pypi.org/user/LeightonC/","role":null,"created_at":"2023-01-11T10:06:15.437Z","updated_at":"2023-01-11T10:06:15.437Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/LeightonC/packages"},{"uuid":"opentelemetry","login":"opentelemetry","name":null,"email":null,"url":null,"packages_count":56,"html_url":"https://pypi.org/user/opentelemetry/","role":null,"created_at":"2023-01-11T10:06:15.450Z","updated_at":"2023-01-11T10:06:15.450Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/opentelemetry/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690322,"maintainers_count":292759,"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":317,"unique_repositories_count_past_30_days":6,"recent_issues":[{"uuid":"4800923743","node_id":"PR_kwDODQttd87tdD3e","number":2416,"state":"open","title":"chore(deps): bump the python-packages group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":10,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-03T06:23:12.000Z","updated_at":"2026-07-17T06:37:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":24,"packages":[{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"bcrypt","old_version":"4.3.0","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"datadog","old_version":"0.52.1","new_version":"0.52.2","repository_url":"https://github.com/DataDog/datadogpy"},{"name":"disposable-email-domains","old_version":"0.0.204","new_version":"0.0.209","repository_url":"https://github.com/disposable-email-domains/disposable-email-domains"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"nh3","old_version":"0.3.5","new_version":"0.3.6","repository_url":"https://github.com/messense/nh3"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.14.2","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"stripe","old_version":"11.6.0","new_version":"15.3.0","repository_url":"https://github.com/stripe/stripe-python"},{"name":"wrapt","old_version":"2.2.1","new_version":"2.2.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yara-x","old_version":"1.18.0","new_version":"1.19.0","repository_url":"https://github.com/VirusTotal/yara-x"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pymdown-extensions","old_version":"10.21.3","new_version":"11.0","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"mkdocs-rss-plugin","old_version":"1.17.9","new_version":"1.19.0","repository_url":"https://github.com/guts/mkdocs-rss-plugin"},{"name":"ast-grep-cli","old_version":"0.42.3","new_version":"0.44.0","repository_url":"https://github.com/ast-grep/ast-grep"},{"name":"cssbeautifier","old_version":"1.15.4","new_version":"2.0.1","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"djlint","old_version":"1.39.2","new_version":"1.39.4","repository_url":"https://github.com/djlint/djLint"},{"name":"jsbeautifier","old_version":"1.15.4","new_version":"2.0.1","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.14.0","new_version":"0.15.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"ruff","old_version":"0.15.17","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tombi","old_version":"1.1.3","new_version":"1.1.5","repository_url":"https://github.com/tombi-toml/tombi"},{"name":"coverage","old_version":"7.14.1","new_version":"7.14.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.3.0` | `5.0.0` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [datadog](https://github.com/DataDog/datadogpy) | `0.52.1` | `0.52.2` |\n| [disposable-email-domains](https://github.com/disposable-email-domains/disposable-email-domains) | `0.0.204` | `0.0.209` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [nh3](https://github.com/messense/nh3) | `0.3.5` | `0.3.6` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.14.2` |\n| [stripe](https://github.com/stripe/stripe-python) | `11.6.0` | `15.3.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.2.1` | `2.2.2` |\n| [yara-x](https://github.com/VirusTotal/yara-x) | `1.18.0` | `1.19.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21.3` | `11.0` |\n| [mkdocs-rss-plugin](https://github.com/guts/mkdocs-rss-plugin) | `1.17.9` | `1.19.0` |\n| [ast-grep-cli](https://github.com/ast-grep/ast-grep) | `0.42.3` | `0.44.0` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.4` | `2.0.1` |\n| [djlint](https://github.com/djlint/djLint) | `1.39.2` | `1.39.4` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.4` | `2.0.1` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.14.0` | `0.15.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.17` | `0.15.20` |\n| [tombi](https://github.com/tombi-toml/tombi) | `1.1.3` | `1.1.5` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.14.1` | `7.14.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.1.0` | `9.1.1` |\n\n\nUpdates `alembic` from 1.18.4 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 4.3.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBumped MSRV to 1.74.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 and free-threaded Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdded support for Windows on ARM.\u003c/li\u003e\n\u003cli\u003ePassing \u003ccode\u003ehashpw\u003c/code\u003e a password longer than 72 bytes now raises a\n\u003ccode\u003eValueError\u003c/code\u003e. Previously the password was silently truncated, following the\nbehavior of the original OpenBSD \u003ccode\u003ebcrypt\u003c/code\u003e implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/5060bce7e6c27f55e89d5b0d22b7ae0437a362f7\"\u003e\u003ccode\u003e5060bce\u003c/code\u003e\u003c/a\u003e 5.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e43f568265df7e1aabbaddccc336dbf3ea675df8\"\u003e\u003ccode\u003ee43f568\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.4 to 4.3.0 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1077\"\u003e#1077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/fc9f680a96a0d8e9df4c5a1a4d991fd961a90adb\"\u003e\u003ccode\u003efc9f680\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.175 to 0.2.176 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/633f46fbb33d8abfe5b9cb0c12eed79878fbff06\"\u003e\u003ccode\u003e633f46f\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/a2fefbbcff8d46cfd00efa8d2c13956b388d6bec\"\u003e\u003ccode\u003ea2fefbb\u003c/code\u003e\u003c/a\u003e Remove pypy310 builds (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/f60707e18f3f9728f2c6f4ce97fb8fc90721c7d3\"\u003e\u003ccode\u003ef60707e\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.5+wasi-0.2.4 to 0.14.7+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/c790eed8fa205403e1ea0587cf9178e866c940f3\"\u003e\u003ccode\u003ec790eed\u003c/code\u003e\u003c/a\u003e Bump unicode-ident from 1.0.18 to 1.0.19 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/122cbdc6895fd70c044a2f4ad7845c2a56b93096\"\u003e\u003ccode\u003e122cbdc\u003c/code\u003e\u003c/a\u003e Bump target-lexicon from 0.13.2 to 0.13.3 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/2bd208d6c5cadba2f983280ec21cc8cf977904d0\"\u003e\u003ccode\u003e2bd208d\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.4+wasi-0.2.4 to 0.14.5+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e1aa9e883090e0267bd7b38964fe852f70a99b88\"\u003e\u003ccode\u003ee1aa9e8\u003c/code\u003e\u003c/a\u003e remove poinless cargo cache paths from CI (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1067\"\u003e#1067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/bcrypt/compare/4.3.0...5.0.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.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-06-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. {pr}\u003ccode\u003e3578\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. {issue}\u003ccode\u003e2331\u003c/code\u003e {issue}\u003ccode\u003e1884\u003c/code\u003e {issue}\u003ccode\u003e3125\u003c/code\u003e {pr}\u003ccode\u003e3582\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datadog` from 0.52.1 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/DataDog/datadogpy/releases\"\u003edatadog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.52.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/DataDog/datadogpy/blob/master/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/DataDog/datadogpy/blob/master/CHANGELOG.md\"\u003edatadog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.52.2 / 2026-06-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fixed] Fix dogshell to accept app keys with underscore prefixes. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/931\"\u003e#931\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Push cardinality for sampled metrics. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/929\"\u003e#929\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Compute rate under lock. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/928\"\u003e#928\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Report the right number of dropped bytes. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/927\"\u003e#927\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Pass missing parameter in \u003ccode\u003eMaxSampleMetricContexts\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/916\"\u003e#916\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Restore \u003ccode\u003e--pretty\u003c/code\u003e/\u003ccode\u003e--raw\u003c/code\u003e support in dogshell. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/917\"\u003e#917\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Fix SLO update via dogshell. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/889\"\u003e#889\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Changed] Cache constant tags for performance. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/915\"\u003e#915\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Added] Add typing for \u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003eutil\u003c/code\u003e, \u003ccode\u003edogstatsd\u003c/code\u003e, and \u003ccode\u003edogshell\u003c/code\u003e modules. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/920\"\u003e#920\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/922\"\u003e#922\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/921\"\u003e#921\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/919\"\u003e#919\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/918\"\u003e#918\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/DataDog/datadogpy/commit/c3f4cd23dd33196dc95d2e4b16c5db33c5d3e635\"\u003e\u003ccode\u003ec3f4cd2\u003c/code\u003e\u003c/a\u003e Update gh-action-pypi-publish to v1.14.0 (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/958\"\u003e#958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/d16aac747251be6ba1026fc004e3e8bacb9a11f6\"\u003e\u003ccode\u003ed16aac7\u003c/code\u003e\u003c/a\u003e ci: remove setup-python action blocked by enterprise policy (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/957\"\u003e#957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/b3566345a1055654eb907354e1f5644cd38c277e\"\u003e\u003ccode\u003eb356634\u003c/code\u003e\u003c/a\u003e Release 0.52.2 (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/e98eab7254d5c3662d890c6947c97bf26e13cd20\"\u003e\u003ccode\u003ee98eab7\u003c/code\u003e\u003c/a\u003e chore(dogstatsd): improvements (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/704e6c2a0a4c05f79e3225b14e04c16805e3d24a\"\u003e\u003ccode\u003e704e6c2\u003c/code\u003e\u003c/a\u003e ci: add dependabot configuration for pip and github-actions (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/938\"\u003e#938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/910b7d33a15553b3a72e0da4d331569d0584dc2d\"\u003e\u003ccode\u003e910b7d3\u003c/code\u003e\u003c/a\u003e performance: ruff-based improvements (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/925\"\u003e#925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/687143fa9f6a179702a5c417835d4beb7c30cd2f\"\u003e\u003ccode\u003e687143f\u003c/code\u003e\u003c/a\u003e typing: add typing for \u003ccode\u003eapi\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/6277a5993eaba9c2739815dbb39ecab22eeddfbc\"\u003e\u003ccode\u003e6277a59\u003c/code\u003e\u003c/a\u003e typing: add typing for \u003ccode\u003eutil\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/158bb01f7054debdf48f18a89f828bf0b446e4a3\"\u003e\u003ccode\u003e158bb01\u003c/code\u003e\u003c/a\u003e refactor: cache constant tags (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/91c8691b5f7eac0941110b032981d8c10dd9801b\"\u003e\u003ccode\u003e91c8691\u003c/code\u003e\u003c/a\u003e ci: run tests for legacy Python versions (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/DataDog/datadogpy/compare/v0.52.1...v0.52.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `disposable-email-domains` from 0.0.204 to 0.0.209\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/disposable-email-domains/disposable-email-domains/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.5 to 0.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate clean_content_tags conflict with tags by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/125\"\u003emessense/nh3#125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument tag_attribute_values as alternate to attributes by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/126\"\u003emessense/nh3#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nh3.escape alias for clean_text by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/127\"\u003emessense/nh3#127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.28.3 to 0.29.0 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/messense/nh3/pull/130\"\u003emessense/nh3#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose ammonia's url_relative policy via url_relative kwarg by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/131\"\u003emessense/nh3#131\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.5...v0.3.6\"\u003ehttps://github.com/messense/nh3/compare/v0.3.5...v0.3.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/bea70dfcdd0b9e246f884416dec9c73f9e8923cf\"\u003e\u003ccode\u003ebea70df\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/788cee289054b95930034eeaedb3424548302456\"\u003e\u003ccode\u003e788cee2\u003c/code\u003e\u003c/a\u003e Expose ammonia's url_relative policy via url_relative kwarg (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/131\"\u003e#131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/e76a81acc58a98a55992ece96740a1e5a448e222\"\u003e\u003ccode\u003ee76a81a\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.3 to 0.29.0 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/8ec45a31335b0df9664d22749067fe41a3e369bc\"\u003e\u003ccode\u003e8ec45a3\u003c/code\u003e\u003c/a\u003e Add nh3.escape alias for clean_text (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/a1e022621e862cf27b929b645cb264d2bf8376df\"\u003e\u003ccode\u003ea1e0226\u003c/code\u003e\u003c/a\u003e Document tag_attribute_values as alternate to attributes (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/389fb797d5203dab4d0691863bd56ff18136a433\"\u003e\u003ccode\u003e389fb79\u003c/code\u003e\u003c/a\u003e Validate clean_content_tags conflict with tags (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/125\"\u003e#125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/61aad5aaf6c719299b3319e2632c7e96500b0fe6\"\u003e\u003ccode\u003e61aad5a\u003c/code\u003e\u003c/a\u003e Bump uraimo/run-on-arch-action in the github-actions group (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/124\"\u003e#124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.5...v0.3.6\"\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.14.1 to 2.14.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis is a security patch release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent \u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e from following symlinks outside \u003ccode\u003esecrets_dir\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/889\"\u003epydantic/pydantic-settings#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.2 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/890\"\u003epydantic/pydantic-settings#890\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eFixes \u003ca href=\"https://github.com/pydantic/pydantic-settings/security/advisories/GHSA-4xgf-cpjx-pc3j\"\u003eGHSA-4xgf-cpjx-pc3j\u003c/a\u003e: \u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e with \u003ccode\u003esecrets_nested_subdir=True\u003c/code\u003e could follow a symbolic link inside \u003ccode\u003esecrets_dir\u003c/code\u003e pointing outside it, reading out-of-tree files into settings values and bypassing the \u003ccode\u003esecrets_dir_max_size\u003c/code\u003e cap. Affected versions: \u003ccode\u003e\u0026gt;= 2.12.0, \u0026lt; 2.14.2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\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/d703bd717e5e07439fa89da2245eee6139413e9e\"\u003e\u003ccode\u003ed703bd7\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.2 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stripe` from 11.6.0 to 15.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stripe/stripe-python/releases\"\u003estripe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.3.0\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-06-24.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1836\"\u003e#1836\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003erelease_details\u003c/code\u003e on \u003ccode\u003eReserve.Hold\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003etax_fund\u003c/code\u003e on enum \u003ccode\u003eBalanceTransaction.type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eBilling.CreditGrant.priority\u003c/code\u003e to be required\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebuyer_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Blik\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Blik\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Bizum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003etransaction_link_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.network\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003eusdsui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003efingerprint\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Pix\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Pix\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Pix\u003c/code\u003e, and \u003ccode\u003eSetupAttempt.PaymentMethodDetail.Pix\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntent.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOption\u003c/code\u003e, and \u003ccode\u003echeckout.SessionCreateParamsPaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebilling_cycle_anchor_config\u003c/code\u003e on \u003ccode\u003echeckout.SessionCreateParamsSubscriptionDatum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ewechat_pay\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emastercard_compliance\u003c/code\u003e on \u003ccode\u003eDispute.Evidence.EnhancedEvidence\u003c/code\u003e, \u003ccode\u003eDispute.EvidenceDetail.EnhancedEligibility\u003c/code\u003e, and \u003ccode\u003eDisputeModifyParamsEvidenceEnhancedEvidence\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard_compliance\u003c/code\u003e on enum \u003ccode\u003eDispute.enhanced_eligibility_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003estatus_details\u003c/code\u003e on \u003ccode\u003eFinancialConnections.Account\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003evalidated\u003c/code\u003e on enum \u003ccode\u003eIdentity.VerificationSession.Redaction.status\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoiceCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eInvoiceModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoice.PaymentSetting.payment_method_types\u003c/code\u003e and \u003ccode\u003eSubscription.PaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003estored_credential_usage\u003c/code\u003e on \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.description\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.description\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esetup_future_usage\u003c/code\u003e on \u003ccode\u003ePaymentIntent.PaymentMethodOption.Satispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOptionSatispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOptionSatispay\u003c/code\u003e, and \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOptionSatispay\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003ePaymentRecordReportRefundParams.refunded\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esatispay\u003c/code\u003e on \u003ccode\u003eSetupAttempt.PaymentMethodDetail\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecustom_fields\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, and \u003ccode\u003efooter\u003c/code\u003e on \u003ccode\u003eSubscription.InvoiceSetting\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsInvoiceSetting\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsInvoiceSetting\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epayment_method_options\u003c/code\u003e and \u003ccode\u003epayment_method\u003c/code\u003e on \u003ccode\u003eTopupCreateParams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003e2026-06-24.dahlia\u003c/code\u003e on enum \u003ccode\u003eWebhookEndpointCreateParams.api_version\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emode\u003c/code\u003e on \u003ccode\u003eV2.Commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003eV2.Commerce.ProductCatalogImport.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit_payments\u003c/code\u003e on \u003ccode\u003eV2.Core.Account.Configuration.Merchant.Capability\u003c/code\u003e, \u003ccode\u003ev2.core.AccountCreateParamsConfigurationMerchantCapability\u003c/code\u003e, and \u003ccode\u003ev2.core.AccountModifyParamsConfigurationMerchantCapability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecrypto_money_manager\u003c/code\u003e and \u003ccode\u003emoney_manager\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003ecrypto_storer\u003c/code\u003e and \u003ccode\u003estorer\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003ev2.commerce.ProductCatalogImportCreateParams.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esunbit_payments\u003c/code\u003e on enum \u003ccode\u003eEventsV2CoreAccountIncludingConfigurationMerchantCapabilityStatusUpdatedEvent.updated_capability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for error codes \u003ccode\u003eanomalous_money_movement_request\u003c/code\u003e, \u003ccode\u003efailed_tax_calculation\u003c/code\u003e, \u003ccode\u003efinancial_account_balance_does_not_support_currency\u003c/code\u003e, \u003ccode\u003efinancial_account_capability_not_enabled\u003c/code\u003e, and \u003ccode\u003efinancial_account_capability_restricted\u003c/code\u003e on \u003ccode\u003eInvoice.LastFinalizationError\u003c/code\u003e, \u003ccode\u003ePaymentIntent.LastPaymentError\u003c/code\u003e, \u003ccode\u003eSetupAttempt.SetupError\u003c/code\u003e, \u003ccode\u003eSetupIntent.LastSetupError\u003c/code\u003e, \u003ccode\u003eStripeError\u003c/code\u003e, and \u003ccode\u003eTerminal.Reader.Action.ApiError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/stripe/stripe-python/blob/v15.3.0/CHANGELOG.md\"\u003ethe changelog for more details\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev15.3.0b1\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-05-27.private.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1801\"\u003e#1801\u003c/a\u003e Update generated code for beta\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epause\u003c/code\u003e method on resource \u003ccode\u003eSubscription\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eretrieve\u003c/code\u003e method on resource \u003ccode\u003ev2.iam.ActivityLog\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard\u003c/code\u003e on enum \u003ccode\u003eIssuing.Settlement.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change type of \u003ccode\u003eProductCatalog.TrialOffer.EndBehavior.Transition.price\u003c/code\u003e from \u003ccode\u003estring\u003c/code\u003e to \u003ccode\u003eexpandable($Price)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stripe/stripe-python/blob/master/CHANGELOG.md\"\u003estripe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.3.0 - 2026-06-24\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-06-24.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1836\"\u003e#1836\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003erelease_details\u003c/code\u003e on \u003ccode\u003eReserve.Hold\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003etax_fund\u003c/code\u003e on enum \u003ccode\u003eBalanceTransaction.type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eBilling.CreditGrant.priority\u003c/code\u003e to be required\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebuyer_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Blik\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Blik\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Bizum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003etransaction_link_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.network\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003eusdsui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003efingerprint\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Pix\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Pix\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Pix\u003c/code\u003e, and \u003ccode\u003eSetupAttempt.PaymentMethodDetail.Pix\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntent.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOption\u003c/code\u003e, and \u003ccode\u003echeckout.SessionCreateParamsPaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebilling_cycle_anchor_config\u003c/code\u003e on \u003ccode\u003echeckout.SessionCreateParamsSubscriptionDatum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ewechat_pay\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emastercard_compliance\u003c/code\u003e on \u003ccode\u003eDispute.Evidence.EnhancedEvidence\u003c/code\u003e, \u003ccode\u003eDispute.EvidenceDetail.EnhancedEligibility\u003c/code\u003e, and \u003ccode\u003eDisputeModifyParamsEvidenceEnhancedEvidence\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard_compliance\u003c/code\u003e on enum \u003ccode\u003eDispute.enhanced_eligibility_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003estatus_details\u003c/code\u003e on \u003ccode\u003eFinancialConnections.Account\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003evalidated\u003c/code\u003e on enum \u003ccode\u003eIdentity.VerificationSession.Redaction.status\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoiceCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eInvoiceModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoice.PaymentSetting.payment_method_types\u003c/code\u003e and \u003ccode\u003eSubscription.PaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003estored_credential_usage\u003c/code\u003e on \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.description\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.description\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esetup_future_usage\u003c/code\u003e on \u003ccode\u003ePaymentIntent.PaymentMethodOption.Satispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOptionSatispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOptionSatispay\u003c/code\u003e, and \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOptionSatispay\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003ePaymentRecordReportRefundParams.refunded\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esatispay\u003c/code\u003e on \u003ccode\u003eSetupAttempt.PaymentMethodDetail\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecustom_fields\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, and \u003ccode\u003efooter\u003c/code\u003e on \u003ccode\u003eSubscription.InvoiceSetting\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsInvoiceSetting\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsInvoiceSetting\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epayment_method_options\u003c/code\u003e and \u003ccode\u003epayment_method\u003c/code\u003e on \u003ccode\u003eTopupCreateParams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003e2026-06-24.dahlia\u003c/code\u003e on enum \u003ccode\u003eWebhookEndpointCreateParams.api_version\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emode\u003c/code\u003e on \u003ccode\u003eV2.Commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003eV2.Commerce.ProductCatalogImport.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit_payments\u003c/code\u003e on \u003ccode\u003eV2.Core.Account.Configuration.Merchant.Capability\u003c/code\u003e, \u003ccode\u003ev2.core.AccountCreateParamsConfigurationMerchantCapability\u003c/code\u003e, and \u003ccode\u003ev2.core.AccountModifyParamsConfigurationMerchantCapability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecrypto_money_manager\u003c/code\u003e and \u003ccode\u003emoney_manager\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003ecrypto_storer\u003c/code\u003e and \u003ccode\u003estorer\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003ev2.commerce.ProductCatalogImportCreateParams.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esunbit_payments\u003c/code\u003e on enum \u003ccode\u003eEventsV2CoreAccountIncludingConfigurationMerchantCapabilityStatusUpdatedEvent.updated_capability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for error codes \u003ccode\u003eanomalous_money_movement_request\u003c/code\u003e, \u003ccode\u003efailed_tax_calculation\u003c/code\u003e, \u003ccode\u003efinancial_account_balance_does_not_support_currency\u003c/code\u003e, \u003ccode\u003efinancial_account_capability_not_enabled\u003c/code\u003e, and \u003ccode\u003efinancial_account_capability_restricted\u003c/code\u003e on \u003ccode\u003eInvoice.LastFinalizationError\u003c/code\u003e, \u003ccode\u003ePaymentIntent.LastPaymentError\u003c/code\u003e, \u003ccode\u003eSetupAttempt.SetupError\u003c/code\u003e, \u003ccode\u003eSetupIntent.LastSetupError\u003c/code\u003e, \u003ccode\u003eStripeError\u003c/code\u003e, and \u003ccode\u003eTerminal.Reader.Action.ApiError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.2.1 - 2026-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1825\"\u003e#1825\u003c/a\u003e Add \u0026quot;source\u0026quot; field to user-agent header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.2.0 - 2026-05-27\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-05-27.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1816\"\u003e#1816\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for new resource \u003ccode\u003ev2.commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecreate\u003c/code\u003e and \u003ccode\u003eretrieve\u003c/code\u003e methods on resource \u003ccode\u003ev2.commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebizum_payments\u003c/code\u003e and \u003ccode\u003escalapay_payments\u003c/code\u003e on \u003ccode\u003eAccount.Capability\u003c/code\u003e, \u003ccode\u003eAccountCreateParamsCapability\u003c/code\u003e, and \u003ccode\u003eAccountModifyParamsCapability\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/4454934a9bd1d957e50d6f9b4d6c11cb827348db\"\u003e\u003ccode\u003e4454934\u003c/code\u003e\u003c/a\u003e Bump version to 15.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/fa25f2471e981e7f6ba633267a0e4abc81586766\"\u003e\u003ccode\u003efa25f24\u003c/code\u003e\u003c/a\u003e Update generated code (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1836\"\u003e#1836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/4280756589793409d9431e36b69524d5b393968d\"\u003e\u003ccode\u003e4280756\u003c/code\u003e\u003c/a\u003e Add PR disclaimer to README (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1831\"\u003e#1831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/3f0f83494bb4c8db3436e5bdbe045c16cdf7bca4\"\u003e\u003ccode\u003e3f0f834\u003c/code\u003e\u003c/a\u003e Upgrade CI runner from ubuntu-22.04 to ubuntu-24.04 (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1830\"\u003e#1830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/a8fcb6913bd4abbe777a1944a126bdf5da36ec87\"\u003e\u003ccode\u003ea8fcb69\u003c/code\u003e\u003c/a\u003e Remove retired manual API tests covered by generated examples (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/1eab0455197eb5d86f858120d062c3984a429b96\"\u003e\u003ccode\u003e1eab045\u003c/code\u003e\u003c/a\u003e Bump version to 15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/36e43ba1d8304d25eba0623367ace415224c5b30\"\u003e\u003ccode\u003e36e43ba\u003c/code\u003e\u003c/a\u003e docs: clarify private preview SDK access in README (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1826\"\u003e#1826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/a5536454ca270b0a0857c65f2cb9d0b636ce8bba\"\u003e\u003ccode\u003ea553645\u003c/code\u003e\u003c/a\u003e Add source field to user-agent header (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/42db177ce3777b27135554cd09a4d59256a84d3b\"\u003e\u003ccode\u003e42db177\u003c/code\u003e\u003c/a\u003e Add Changelog section to PR template (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1823\"\u003e#1823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/2d39c3bc3ed3bcc07c1eb5516458ce63096d9984\"\u003e\u003ccode\u003e2d39c3b\u003c/code\u003e\u003c/a\u003e Disable trim_trailing_whitespace for CHANGELOG.md (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stripe/stripe-python/compare/v11.6.0...v15.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wrapt` from 2.2.1 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt 2.2.2\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\nbuilds). The source distribution is also attached together\nwith \u003ccode\u003eSHA256SUMS\u003c/code\u003e for verification.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.2rc3\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.2 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2rc3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.2rc3.tar.gz\ncd wrapt-2.2.2rc3\npip install .\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003eSHA256SUMS\u003c/code\u003e is attached for verification of the archives.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.2rc2\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.2 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2rc2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.2rc2.tar.gz\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003e@wrapt.lru_cache\u003c/code\u003e was applied to an instance method that was\noverridden in a subclass, and the subclass method called the base class\nmethod via \u003ccode\u003esuper()\u003c/code\u003e, a \u003ccode\u003eRecursionError\u003c/code\u003e was raised instead of the\nbase class method being invoked. The per-instance cache for each method\nwas stored as an attribute on the instance whose name was derived only\nfrom the method \u003ccode\u003e__name__\u003c/code\u003e, so the base and derived methods shared a\nsingle cache slot. The subclass cache was therefore found again when the\nbase method was reached through \u003ccode\u003esuper()\u003c/code\u003e, re-entering the subclass body\nand recursing without end. The cache attribute name now incorporates a\nunique identifier for each decorated method so that a base method and a\nmethod that overrides it use distinct per-instance caches. With thanks to\nthe reporter of \u003ccode\u003eissue [#342](https://github.com/GrahamDumpleton/wrapt/issues/342) \u0026lt;https://github.com/GrahamDumpleton/wrapt/issues/342\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003e@wrapt.lru_cache\u003c/code\u003e was applied to a method of a class deriving from\n\u003ccode\u003ewrapt.ObjectProxy\u003c/code\u003e, the per-instance cache was stored on the wrapped\nobject rather than on the proxy. This is because the proxy \u003ccode\u003e__setattr__\u003c/code\u003e\nforwards attribute assignment to the wrapped object for any name that is\nnot a recognised proxy attribute, and the cache attribute name was not one.\nStoring the cache on the wrapped object had several consequences: the\nwrapped object was polluted with cache attributes it never defined; the\ncache held a reference back to the proxy through the bound method it\nwrapped, so a wrapped object that outlived the proxy kept the proxy alive\nand prevented its collection; wrapping an object that does not accept\narbitrary attributes, such as one using \u003ccode\u003e__slots__\u003c/code\u003e, caused the first\ncached call to fail with an \u003ccode\u003eAttributeError\u003c/code\u003e; and two proxies sharing a\nsingle wrapped object shared one cache and could return results computed\nfor the wrong proxy. The cache attribute is now stored on the proxy itself\nusing the proxy \u003ccode\u003e__self_setattr__\u003c/code\u003e method when the instance is a wrapt\nobject proxy, falling back to \u003ccode\u003esetattr\u003c/code\u003e for ordinary instances.\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/GrahamDumpleton/wrapt/commit/0ae09fd58044fa7ae054614425e633e68d123541\"\u003e\u003ccode\u003e0ae09fd\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.2.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/86db7a9d83a6b9bf97bfdb1c520524ec8aed8c8a\"\u003e\u003ccode\u003e86db7a9\u003c/code\u003e\u003c/a\u003e Update to 2.2.2 for final release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/6deda4336713f4b1a6a36c4c157df1662410861d\"\u003e\u003ccode\u003e6deda43\u003c/code\u003e\u003c/a\u003e Update to 2.2.2rc3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/9c48a1efa25eadb7a20eafead54dcfecefa8f55e\"\u003e\u003ccode\u003e9c48a1e\u003c/code\u003e\u003c/a\u003e Constrain lru_cache proxy detection to BaseObjectProxy subclasses.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/4053838ed67a1151200f2e0db938eceb109fab2d\"\u003e\u003ccode\u003e4053838\u003c/code\u003e\u003c/a\u003e Update version to 2.2.2rc2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/99bf4ef078d69c07716fad5bed5129c400a155d6\"\u003e\u003ccode\u003e99bf4ef\u003c/code\u003e\u003c/a\u003e Store lru_cache per-instance cache on object proxy not wrapped object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0e862fbb738116127786b0a82cceb7e13837fe86\"\u003e\u003ccode\u003e0e862fb\u003c/code\u003e\u003c/a\u003e Document pickling instances with lru_cache decorated methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/73dca57c78c501e087feda72c53c93ba09807b21\"\u003e\u003ccode\u003e73dca57\u003c/code\u003e\u003c/a\u003e Add lru_cache tests for overridden methods calling super().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/beead5c2e0281f66bf41172fdebccf0d039e1afd\"\u003e\u003ccode\u003ebeead5c\u003c/code\u003e\u003c/a\u003e Fix lru_cache recursion for overridden methods calling super().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/fbf2fc1451d7165e969c3fde6a55da5397683f83\"\u003e\u003ccode\u003efbf2fc1\u003c/code\u003e\u003c/a\u003e Document pure Python failure mode for ObjectProxy + ABCMeta mixin.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/2.2.1...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yara-x` from 1.18.0 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/VirusTotal/yara-x/releases\"\u003eyara-x's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing machine architecture types to \u003ccode\u003epe\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/VirusTotal/yara-x/issues/687\"\u003e#687\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd warning for single-byte patterns (71baa67).\u003c/li\u003e\n\u003cli\u003eAdd warning for duplicate patterns in a rule (9061803).\u003c/li\u003e\n\u003cli\u003eSmall optimization when generating structures from a protobuf (9255a3e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Don't derive header constraints from patterns with certain flags (\u003ca href=\"https://redirect.github.com/VirusTotal/yara-x/issues/689\"\u003e#689\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Prevent undefined behavior when deserializing rules from untrusted binary data (25efa37).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors: \u003ca href=\"https://github.com/nugxperience\"\u003e\u003ccode\u003e@​nugxperience\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/cherepanov74\"\u003e\u003ccode\u003e@​cherepanov74\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/VirusTotal/yara-x/commit/fe40349ea12c5ccb89aae9f304b979c4fb410f66\"\u003e\u003ccode\u003efe40349\u003c/code\u003e\u003c/a\u003e tests: ignore disabled modules while running tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/dc48090f1f9655cc0c7945e1771d9743c76d4d62\"\u003e\u003ccode\u003edc48090\u003c/code\u003e\u003c/a\u003e chore: fix test cases after disabling \u003ccode\u003evba\u003c/code\u003e and \u003ccode\u003eolecf\u003c/code\u003e modules.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/4426f0a3ce52e14732bb8b94dba2c0e183812003\"\u003e\u003ccode\u003e4426f0a\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.19.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/f7d6a43a1af114abc55a9a94169d2e20dcbda0cd\"\u003e\u003ccode\u003ef7d6a43\u003c/code\u003e\u003c/a\u003e chore: don't include \u003ccode\u003evba\u003c/code\u003e and \u003ccode\u003eolecf\u003c/code\u003e as default modules.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/25efa375572efcfbe880a263ee3b0932d4b61a24\"\u003e\u003ccode\u003e25efa37\u003c/code\u003e\u003c/a\u003e fix: prevent undefined behavior when deserializing rules from untrusted binar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/4fbaf55606e06af6e109d02b764a9190edf8c4ed\"\u003e\u003ccode\u003e4fbaf55\u003c/code\u003e\u003c/a\u003e docs: add documentation for \u003ccode\u003eRules::header_constraints\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/496b5c82f3db66e655e7ff459347438d7aeade74\"\u003e\u003ccode\u003e496b5c8\u003c/code\u003e\u003c/a\u003e style: remove empty lines.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/3f2b2aa9962e548bf559dd8fb0b409cd4caaebe1\"\u003e\u003ccode\u003e3f2b2aa\u003c/code\u003e\u003c/a\u003e chore: upgrade dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/71baa67f2337cf164bfa7ac4008f54b41476cadc\"\u003e\u003ccode\u003e71baa67\u003c/code\u003e\u003c/a\u003e feat: flag single-byte patterns as slow and allow failing compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/b2e0fca0fdb4de54aae27a909741132bbac995f2\"\u003e\u003ccode\u003eb2e0fca\u003c/code\u003e\u003c/a\u003e chore: assert completeness of pattern flags for header constraints\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/VirusTotal/yara-x/compare/v1.18.0...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc...\n\n_Description has been truncated_","html_url":"https://github.com/sthagen/pypa-warehouse/pull/2416","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sthagen%2Fpypa-warehouse/issues/2416","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2416/packages"},{"uuid":"4781583755","node_id":"PR_kwDOSNjZ2s7seBBu","number":880,"state":"open","title":"Bump the backend-python group in /backend with 31 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-01T01:24:49.000Z","updated_at":"2026-07-01T01:35:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"backend-python","update_count":31,"packages":[{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.4","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the backend-python group in /backend with 31 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.4` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\nUpdates `fastapi` from 0.136.1 to 0.138.2\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.138.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor Library Skills, make info easier to find for agents. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15841\"\u003e#15841\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👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15836\"\u003e#15836\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 issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15833\"\u003e#15833\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 issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15831\"\u003e#15831\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: Add TestMu again. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15830\"\u003e#15830\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 zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15820\"\u003e#15820\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⬆ Bump pydantic-settings from 2.14.1 to 2.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15799\"\u003e#15799\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\u003c/ul\u003e\n\u003ch2\u003e0.138.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003eapp.frontend(\u0026quot;/\u0026quot;, directory=\u0026quot;dist\u0026quot;)\u003c/code\u003e and \u003ccode\u003erouter.frontend(\u0026quot;/\u0026quot;, directory=\u0026quot;dist\u0026quot;)\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15800\"\u003e#15800\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead the docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/frontend/\"\u003eFrontend\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix typo in release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15807\"\u003e#15807\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 \u003ccode\u003eapp.frontend()\u003c/code\u003e instructions to Agent Library Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15805\"\u003e#15805\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 release notes link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15802\"\u003e#15802\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 white space characters in bigger apps. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15801\"\u003e#15801\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✏️ Fix grammar, typos, and broken links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15694\"\u003e#15694\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Enable Hindi docs translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15554\"\u003e#15554\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix failing test, update format for raised errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15804\"\u003e#15804\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👷 Fix test-alls-green. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15803\"\u003e#15803\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🔧 Enable checking \u003ccode\u003erelease-notes.md\u003c/code\u003e for typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15796\"\u003e#15796\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📝 Tweak wording about deploying to FastAPI Cloud. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15793\"\u003e#15793\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🔨 Use \u003ccode\u003egpt-5.5\u003c/code\u003e model in \u003ccode\u003etranslate.py\u003c/code\u003e, specify \u003ccode\u003e-chat\u003c/code\u003e to avoid warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15792\"\u003e#15792\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.137.2\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eiter_route_contexts()\u003c/code\u003e for advanced use cases that used to use \u003ccode\u003erouter.routes\u003c/code\u003e (e.g. Jupyverse). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15785\"\u003e#15785\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Fix broken Markdown in Korean custom response docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15774\"\u003e#15774\u003c/a\u003e by \u003ca href=\"https://github.com/kooqooo\"\u003e\u003ccode\u003e@​kooqooo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15761\"\u003e#15761\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15760\"\u003e#15760\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/702fea83bb3ef0b558104835d7936af49650fb2d\"\u003e\u003ccode\u003e702fea8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.138.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15864\"\u003e#15864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6466865eec63cb545869d80e2ee6fbc54c4d364e\"\u003e\u003ccode\u003e6466865\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b790e14cb686506df663959ac4879053cfed38db\"\u003e\u003ccode\u003eb790e14\u003c/code\u003e\u003c/a\u003e ♻️ Make \u003ccode\u003eapp.frontend()\u003c/code\u003e return 404 for methods other than \u003ccode\u003eGET\u003c/code\u003e or \u003ccode\u003eHEAD\u003c/code\u003e wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c2708d981729c96437dcc1d7cfa40cd15128bc60\"\u003e\u003ccode\u003ec2708d9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/403b1fa16f9519f4b5ab52413daae059479fae4a\"\u003e\u003ccode\u003e403b1fa\u003c/code\u003e\u003c/a\u003e 🔧 Update sponsors: remove Stainless (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15862\"\u003e#15862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1929ac23195136e8616ed1b7c3fd84c65b26d234\"\u003e\u003ccode\u003e1929ac2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cba41585675ecb0e119d3ca258821659f07ec3f7\"\u003e\u003ccode\u003ecba4158\u003c/code\u003e\u003c/a\u003e ♻️ Refactor how sponsors data is handled for banners (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15852\"\u003e#15852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b90c49aefad4958abdfbcacf9c2f816940a8f0e2\"\u003e\u003ccode\u003eb90c49a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.138.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15842\"\u003e#15842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f2f3df4852bf7cb29be1187806d95a0fdc7ea40\"\u003e\u003ccode\u003e1f2f3df\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0af003a85da454dcf6b6783e0ad3f0dd687e944f\"\u003e\u003ccode\u003e0af003a\u003c/code\u003e\u003c/a\u003e ♻️ Refactor Library Skills, make info easier to find for agents (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15841\"\u003e#15841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.138.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosmtplib` from 3.0.1 to 5.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cole/aiosmtplib/releases\"\u003eaiosmtplib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Discard any buffered server data before the STARTTLS handshake, preventing a response-injection attack where a man-in-the-middle pre-stages plaintext that would otherwise be read as part of the encrypted session. More details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Corrected SMTPResponse \u003ccode\u003e__repr__\u003c/code\u003e result\u003c/li\u003e\n\u003cli\u003eBugfix: Calling \u003ccode\u003econnect()\u003c/code\u003e on an already-connected client now raises \u003ccode\u003eSMTPException\u003c/code\u003e instead of deadlocking on the connection lock\u003c/li\u003e\n\u003cli\u003eFeature: Poe command runner for dev tasks\u003c/li\u003e\n\u003cli\u003eBugfix: Timeout ignored during CRAM-MD5 verification\u003c/li\u003e\n\u003cli\u003eBugfix: Only parse EHLO response after validating success\u003c/li\u003e\n\u003cli\u003eBugfix: return None from extract_sender when address list is empty\u003c/li\u003e\n\u003cli\u003eBugfix: Enforce a maximum total response size, preventing unbounded memory use if a server streams data with no line ending or endless multiline continuation lines\u003c/li\u003e\n\u003cli\u003eBugfix: Use the invalid_response status code (-1) instead of 500 when a server response line exceeds the maximum length\u003c/li\u003e\n\u003cli\u003eBugfix: A read timeout now closes the connection instead of leaving it in a desynced state, where a late server response could be mispaired with a subsequent command\u003c/li\u003e\n\u003cli\u003eBugfix: Correctly parse old-style \u003ccode\u003eAUTH=\u003c/code\u003e extension advertisements; all advertised methods are now kept (e.g. both PLAIN and LOGIN from \u003ccode\u003eAUTH=PLAIN LOGIN\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: ESMTP extension lines with leading whitespace are no longer ignored\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.1.1...v5.1.2\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.1.1...v5.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Reject control characters (the C0 range 0x00-0x1F and DEL 0x7F, including CR, LF, and NUL) in SMTP command arguments, preventing command injection via input passed to mail(), rcpt(), vrfy(), expn() or sendmail(). Such input now raises ValueError before anything is written to the connection. More details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\u003c/a\u003e Thanks to \u003ca href=\"https://github.com/tonghuaroot\"\u003e\u003ccode\u003e@​tonghuaroot\u003c/code\u003e\u003c/a\u003e for the report.\u003c/li\u003e\n\u003cli\u003eBugfix: SMTP.quit() no longer hangs until the read timeout when the peer drops the transport with an exception after QUIT is sent but before the 221 reply is parsed (e.g. AWS SES closing TLS without close_notify). Contributed by \u003ca href=\"https://github.com/yamaaaaaa31\"\u003e\u003ccode\u003e@​yamaaaaaa31\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yamaaaaaa31\"\u003e\u003ccode\u003e@​yamaaaaaa31\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/cole/aiosmtplib/pull/346\"\u003ecole/aiosmtplib#346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.1.0...v5.1.1\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.1.0...v5.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature: Add XOAUTH2 authentication support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.0.0...v5.1.0\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.0.0...v5.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBREAKING\u003c/strong\u003e: Drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eVarious testing config 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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/cole/aiosmtplib/pull/328\"\u003ecole/aiosmtplib#328\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/cole/aiosmtplib/blob/main/CHANGELOG.rst\"\u003eaiosmtplib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Discard any buffered server data before the STARTTLS handshake,\npreventing a response-injection attack where a man-in-the-middle pre-stages\nplaintext that would otherwise be read as part of the encrypted session.\nMore details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Corrected SMTPResponse \u003ccode\u003e__repr__\u003c/code\u003e result\u003c/li\u003e\n\u003cli\u003eBugfix: Calling \u003ccode\u003econnect()\u003c/code\u003e on an already-connected client now raises\n\u003ccode\u003eSMTPException\u003c/code\u003e instead of deadlocking on the connection lock\u003c/li\u003e\n\u003cli\u003eFeature: Poe command runner for dev tasks\u003c/li\u003e\n\u003cli\u003eBugfix: Timeout ignored during CRAM-MD5 verification\u003c/li\u003e\n\u003cli\u003eBugfix: Only parse EHLO response after validating success\u003c/li\u003e\n\u003cli\u003eBugfix: return None from extract_sender when address list is empty\u003c/li\u003e\n\u003cli\u003eBugfix: Enforce a maximum total response size, preventing unbounded memory\nuse if a server streams data with no line ending or endless multiline\ncontinuation lines\u003c/li\u003e\n\u003cli\u003eBugfix: Use the invalid_response status code (-1) instead of 500 when a\nserver response line exceeds the maximum length\u003c/li\u003e\n\u003cli\u003eBugfix: A read timeout now closes the connection instead of leaving it in a\ndesynced state, where a late server response could be mispaired with a\nsubsequent command\u003c/li\u003e\n\u003cli\u003eBugfix: Correctly parse old-style \u003ccode\u003eAUTH=\u003c/code\u003e extension advertisements; all\nadvertised methods are now kept (e.g. both PLAIN and LOGIN from\n\u003ccode\u003eAUTH=PLAIN LOGIN\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: ESMTP extension lines with leading whitespace are no\nlonger ignored\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Reject control characters (the C0 range \u003ccode\u003e0x00\u003c/code\u003e-\u003ccode\u003e0x1F\u003c/code\u003e and DEL\n\u003ccode\u003e0x7F\u003c/code\u003e, including CR, LF, and NUL) in SMTP command arguments, preventing\ncommand injection via input passed to \u003ccode\u003email()\u003c/code\u003e, \u003ccode\u003ercpt()\u003c/code\u003e, \u003ccode\u003evrfy()\u003c/code\u003e,\n\u003ccode\u003eexpn()\u003c/code\u003e or \u003ccode\u003esendmail()\u003c/code\u003e. Such input now raises \u003ccode\u003eValueError\u003c/code\u003e before\nanything is written to the connection.\nMore details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\u003c/a\u003e\nThanks to \u003ca href=\"https://github.com/tonghuaroot\"\u003e\u003ccode\u003e@​tonghuaroot\u003c/code\u003e\u003c/a\u003e for the report.\u003c/li\u003e\n\u003cli\u003eBugfix: \u003ccode\u003eSMTP.quit()\u003c/code\u003e no longer hangs until the read timeout when the\npeer drops the transport with an exception after \u003ccode\u003eQUIT\u003c/code\u003e is sent but\nbefore the 221 reply is parsed (e.g. AWS SES closing TLS without\n\u003ccode\u003eclose_notify\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature: Add XOAUTH2 authentication support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/bffc6d19fbb04a84284c8c12ef640fbae0641a9c\"\u003e\u003ccode\u003ebffc6d1\u003c/code\u003e\u003c/a\u003e release: v5.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/9fab7ba1361dbf7622ede1315a24be805cff09c9\"\u003e\u003ccode\u003e9fab7ba\u003c/code\u003e\u003c/a\u003e fix(security): STARTTLS injection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/382b3c9c9954c62472a7ebc460b292f36f7c8ca3\"\u003e\u003ccode\u003e382b3c9\u003c/code\u003e\u003c/a\u003e ci: try codecov 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/f0087db4361b44e390b518779e04c7ea3a51924d\"\u003e\u003ccode\u003ef0087db\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/c0be34116ceeabe99b587925bc0b2931bbe68f6f\"\u003e\u003ccode\u003ec0be341\u003c/code\u003e\u003c/a\u003e fix: buildcheck via poe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/889c24c535cd5b2e0193029237ba592c4d7b4cdc\"\u003e\u003ccode\u003e889c24c\u003c/code\u003e\u003c/a\u003e lint: auto fixes from pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/3e25ac48cc298a2f3ee7e9e45ee50bf5a2d4cff7\"\u003e\u003ccode\u003e3e25ac4\u003c/code\u003e\u003c/a\u003e fix: mixed old/new style auth parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/5cd299f3037024eeeb63b6a74ab9bb638f60a78a\"\u003e\u003ccode\u003e5cd299f\u003c/code\u003e\u003c/a\u003e fix: explicit close on read timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/e1521d791552b552e97ee96075e00bccbbf6062b\"\u003e\u003ccode\u003ee1521d7\u003c/code\u003e\u003c/a\u003e fix: error (don't hang) on double connect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/e8995519150b0646e094d44d2bd13eec0bd3795e\"\u003e\u003ccode\u003ee899551\u003c/code\u003e\u003c/a\u003e fix: SMTPResponse repr\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v3.0.1...v5.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.4 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.5.2 to 3.5.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.3 (2026-06-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix a crash on free-threaded builds when multiple greenlets were\nholding a critical section on an object and the GIL for the thread\nwas dropped. See \u003ccode\u003eissue 513 \u0026lt;https://github.com/python-greenlet/greenlet/issues/513\u0026gt;\u003c/code\u003e_. Thanks\nto ddorian.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-greenlet/greenlet/commit/6ee8c2c5b92fbf296c10219030d0bd3ab0ea6300\"\u003e\u003ccode\u003e6ee8c2c\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/6ec0bbba46fdcbfbf5fe4a37ab744aa3835f05c6\"\u003e\u003ccode\u003e6ec0bbb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/514\"\u003e#514\u003c/a\u003e from python-greenlet/issue513-preserve-crit-section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c03a7e6932c3b437bdf873acfc66fbaae31f1875\"\u003e\u003ccode\u003ec03a7e6\u003c/code\u003e\u003c/a\u003e Py3.13+: Preserve thread state critical_section to prevent crash on free-thre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/bc10829b9eb05d35bc0b8a09c8c6e4d54cfccc18\"\u003e\u003ccode\u003ebc10829\u003c/code\u003e\u003c/a\u003e Speed up manylinux test runs by only running the core checks; only start many...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c2db75dca4bafa562ace9553b6e5c17af6b483e4\"\u003e\u003ccode\u003ec2db75d\u003c/code\u003e\u003c/a\u003e Back to development: 3.5.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.5.2...3.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.197.0 to 2.198.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.198.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.197.0...v2.198.0\"\u003e2.198.0\u003c/a\u003e (2026-06-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadexchangebuyer2:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a6b7a3c1312a0b843c6451f1502268232af1e08d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a6b7a3c1312a0b843c6451f1502268232af1e08d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/39a7f8e64940d318ce50b5431ebca0ca6f044b4e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/39a7f8e64940d318ce50b5431ebca0ca6f044b4e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/47cc6885a57ff256a2878b8902f66f4d97e980be\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/47cc6885a57ff256a2878b8902f66f4d97e980be\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bf9010bd3c1f6825858612032ad8722e53368738\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bf9010bd3c1f6825858612032ad8722e53368738\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/60ed501536c048d4257f05fb44d01ac90afc45c6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/60ed501536c048d4257f05fb44d01ac90afc45c6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/07ab81d00d9225efc0d1bfb54d7a2131537013bb\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/07ab81d00d9225efc0d1bfb54d7a2131537013bb\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d13cd0d5ec973a994a6409e4ccdd879ca5cdec24\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d13cd0d5ec973a994a6409e4ccdd879ca5cdec24\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/29d33229a8aca59cc2105ca57f10c5c34392eedf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/29d33229a8aca59cc2105ca57f10c5c34392eedf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b2dcfba95c75409fcebe62b45d481e2b9cee79c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b2dcfba95c75409fcebe62b45d481e2b9cee79c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1dc37cdcddd779ca435abc9593b0bfb4e298770d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1dc37cdcddd779ca435abc9593b0bfb4e298770d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/001dba95de25008758d1955c7ff5db51e48606a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/001dba95de25008758d1955c7ff5db51e48606a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eassuredworkloads:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2982b1986becfc8cf17768a86146cfac04338f81\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2982b1986becfc8cf17768a86146cfac04338f81\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b64d9bb3d591fd521b86b21fdbc37f3dd793f43\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b64d9bb3d591fd521b86b21fdbc37f3dd793f43\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigqueryconnection:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8e6a3e697448de8fd7128240f2615228db24e85c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8e6a3e697448de8fd7128240f2615228db24e85c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/012db99dae421f7b21f0e43b1df333b209cf3e15\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/012db99dae421f7b21f0e43b1df333b209cf3e15\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9548dcf1aa1eeaa6524b6d9386178dac69c39096\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9548dcf1aa1eeaa6524b6d9386178dac69c39096\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecalendar:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/399252cfd1bed4193f5821e66536d6a3a75f03c8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/399252cfd1bed4193f5821e66536d6a3a75f03c8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2716cb2b0eb0d91686901d5153aa9581d1143bb4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2716cb2b0eb0d91686901d5153aa9581d1143bb4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0ae828d973d7bb7f3e6f86bd4338b11b9f3c3e8f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0ae828d973d7bb7f3e6f86bd4338b11b9f3c3e8f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7afd85a6912a8239b3c72ca765db28487348222a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7afd85a6912a8239b3c72ca765db28487348222a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromewebstore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/83fbd762d4539251e84ebd6af38a770c73027da7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/83fbd762d4539251e84ebd6af38a770c73027da7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbuild:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c38d7967d2acd8762a0b803592d331c11627f750\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c38d7967d2acd8762a0b803592d331c11627f750\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclouddeploy:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/28abab7bb30a59f9487cb693ad90799ccaabdf7d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/28abab7bb30a59f9487cb693ad90799ccaabdf7d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fead0039902e25ada74a65b06d430e8cfa7233f5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fead0039902e25ada74a65b06d430e8cfa7233f5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudsupport:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/81e568808c282c0cc8901eed0551bd8b67b5a655\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/81e568808c282c0cc8901eed0551bd8b67b5a655\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9a32b295fe297dc5e71cedd65f75e36a128335f5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9a32b295fe297dc5e71cedd65f75e36a128335f5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/11cd8081390f3cfa005933660534d5336679cff6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/11cd8081390f3cfa005933660534d5336679cff6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econfig:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d091a431967e3770e9569e5fb5e55097716b1ce9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d091a431967e3770e9569e5fb5e55097716b1ce9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/32b237f7393e38201fd2999894d7e6f08afc4819\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/32b237f7393e38201fd2999894d7e6f08afc4819\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/da22c635c61f623f972f5dc6c4107abd4d15a0ec\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/da22c635c61f623f972f5dc6c4107abd4d15a0ec\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/437bae8628635069277f953be2fb11de0f25fe19\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/437bae8628635069277f953be2fb11de0f25fe19\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3c1532030f7b13ff020152ff2a9ac8f399b787e9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3c1532030f7b13ff020152ff2a9ac8f399b787e9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e5fb813d94b817c0c9a56fff7a6962e73d3463b8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e5fb813d94b817c0c9a56fff7a6962e73d3463b8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/07bb17d43cad08406c8e71e932124af8448a870b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/07bb17d43cad08406c8e71e932124af8448a870b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/23f350934e28f38d007d767f4392a77685811484\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/23f350934e28f38d007d767f4392a77685811484\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataproc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a7fcf59c2e438af443ab064c4709f4d3781d9e5e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a7fcf59c2e438af443ab064c4709f4d3781d9e5e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastream:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5dfdcf674450bbe44af6fb6ccc6bd7d31b5452f2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5dfdcf674450bbe44af6fb6ccc6bd7d31b5452f2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fef9bf7835061f93ea0a8fc7977ee0a7b7aafbc6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fef9bf7835061f93ea0a8fc7977ee0a7b7aafbc6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperknowledge:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a4cd9158c18ac61a209c659671721460b3080cfd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a4cd9158c18ac61a209c659671721460b3080cfd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d2ef2eb9430ada50181357babc5de143bb7d620d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d2ef2eb9430ada50181357babc5de143bb7d620d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8bada744a9918d20e412a7166bc01a3009bfa793\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8bada744a9918d20e412a7166bc01a3009bfa793\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edisplayvideo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/22d41db20d302eed8257606127b1d9da4e48d195\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/22d41db20d302eed8257606127b1d9da4e48d195\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a6f6a89d23fabc5b1acb399cbf94a4e2f0f5c471\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a6f6a89d23fabc5b1acb399cbf94a4e2f0f5c471\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edomains:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91394c703ca7914f703991333f30df0925b036c5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91394c703ca7914f703991333f30df0925b036c5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/bf14134647a9c5c9e7430b0c5034afbcec89a203\"\u003e\u003ccode\u003ebf14134\u003c/code\u003e\u003c/a\u003e chore(main): release 2.198.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003e\u003ccode\u003eea0e936\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/348fc8fe6f88baffce730b5996a0ccfcaf8af7ad\"\u003e\u003ccode\u003e348fc8f\u003c/code\u003e\u003c/a\u003e chore: migrate samples to google-cloud-python system test infrastructure (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2768\"\u003e#2768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.197.0...v2.198.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-fastapi-instrumentator` from 8.0.0 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/releases\"\u003eprometheus-fastapi-instrumentator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-06-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003easyncio.iscoroutinefunction()\u003c/code\u003e with \u003ccode\u003einspect.iscoroutinefunction()\u003c/code\u003e in \u003ccode\u003eInstrumentator.add()\u003c/code\u003e to avoid warnings on Python 3.12+ in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/378\"\u003e#378\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-06-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed resolving route names for routers registered via \u003ccode\u003einclude_router()\u003c/code\u003e on FastAPI 0.116+ leading to \u003ccode\u003eAttributeError\u003c/code\u003e getting raised on every request. The internal route name resolution now also handles \u003ccode\u003e_IncludedRouter\u003c/code\u003e and recurses into the included router's own routes so the Prometheus label reflects the leaf endpoint. Thanks to \u003ca href=\"https://github.com/adeebmirza\"\u003e\u003ccode\u003e@​adeebmirza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/371\"\u003e#371\u003c/a\u003e for fixing it.\u003c/li\u003e\n\u003cli\u003eFixed hitting mounts with slash redirection collecting wrong handler name. Thanks to \u003ca href=\"https://github.com/lbonn\"\u003e\u003ccode\u003e@​lbonn\u003c/code\u003e\u003c/a\u003e for raising and fixing this issue in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/369\"\u003e#369\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/trallnag/prometheus-fastapi-instrumentator/blob/master/CHANGELOG.md\"\u003eprometheus-fastapi-instrumentator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e / 2026-06-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003easyncio.iscoroutinefunction()\u003c/code\u003e with\n\u003ccode\u003einspect.iscoroutinefunction()\u003c/code\u003e in \u003ccode\u003eInstrumentator.add()\u003c/code\u003e to avoid warnings on\nPython 3.12+ in\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/378\"\u003e#378\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.0...v8.0.1\"\u003e8.0.1\u003c/a\u003e / 2026-06-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed resolving route names for routers registered via \u003ccode\u003einclude_router()\u003c/code\u003e on\nFastAPI 0.116+ leading to \u003ccode\u003eAttributeError\u003c/code\u003e getting raised on every request.\nThe internal route name resolution now also handles \u003ccode\u003e_IncludedRouter\u003c/code\u003e and\nrecurses into the included router's own routes so the Prometheus label\nreflects the leaf endpoint. Thanks to\n\u003ca href=\"https://github.com/adeebmirza\"\u003e\u003ccode\u003e@​adeebmirza\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/371\"\u003e#371\u003c/a\u003e\nfor fixing it.\u003c/li\u003e\n\u003cli\u003eFixed hitting mounts with slash redirection collecting wrong handler name.\nThanks to \u003ca href=\"https://github.com/lbonn\"\u003e\u003ccode\u003e@​lbonn\u003c/code\u003e\u003c/a\u003e for raising and fixing this issue\nin\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/369\"\u003e#369\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/trallnag/prometheus-fastapi-instrumentator/commit/c1c1fb645ce3b28d538413a9ac18cc7559c0c385\"\u003e\u003ccode\u003ec1c1fb6\u003c/code\u003e\u003c/a\u003e chore: Prepare release v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/652991e26b5f0b78711bd67ecca21c4d07800571\"\u003e\u003ccode\u003e652991e\u003c/code\u003e\u003c/a\u003e docs: Add link to pr in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/4cca8aac70bee7b2f8cee0830eeda39a8887b883\"\u003e\u003ccode\u003e4cca8aa\u003c/code\u003e\u003c/a\u003e build(deps): bump pre-commit/action from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/dd185b0d9dcfb1bfd2530c761330dc47112a2b74\"\u003e\u003ccode\u003edd185b0\u003c/code\u003e\u003c/a\u003e build(deps): bump softprops/action-gh-release from 2 to 3 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/8e8f8c51861bf182094b24aa54a487c332718bfd\"\u003e\u003ccode\u003e8e8f8c5\u003c/code\u003e\u003c/a\u003e build(deps): bump amannn/action-semantic-pull-request from 5 to 6 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/778526bb99bcac0eb087f35fd32b1821384ef0c3\"\u003e\u003ccode\u003e778526b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/c212ede9a3f44326ac9b691fc9cb25eeb31faf09\"\u003e\u003ccode\u003ec212ede\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 2 to 4 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/f31451c829af64872000699aaada7217603e4d35\"\u003e\u003ccode\u003ef31451c\u003c/code\u003e\u003c/a\u003e chore: Replace deprecated coroutine detection (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/c43336855fd0b6f978a01fd793da02e383f71abb\"\u003e\u003ccode\u003ec433368\u003c/code\u003e\u003c/a\u003e test(routing): add 405/Mount/WebSocket coverage for _IncludedRouter (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/e7b326620a92df05b18880b2cc8ba06ebe9cf389\"\u003e\u003ccode\u003ee7b3266\u003c/code\u003e\u003c/a\u003e Remove incorrect build badge from readme\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.0...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telem...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/880","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/880","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/880/packages"},{"uuid":"4771658777","node_id":"PR_kwDOSNjZ2s7r9fdZ","number":856,"state":"closed","title":"chore(deps): bump the ci-python group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-07-01T01:25:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T21:18:05.000Z","updated_at":"2026-07-01T01:25:02.000Z","time_to_close":101215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ci-python","update_count":40,"packages":[{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-resource-manager","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"huggingface-hub","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"importlib-metadata","old_version":"8.9.0","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.28.0","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.3","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ci-python group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [google-cloud-resource-manager](https://github.com/googleapis/google-cloud-python) | `1.17.0` | `1.18.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.9.0` | `2.10.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.20.1` | `1.21.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.9.0` | `9.0.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.28.0` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.14.6` | `0.17.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.8` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.3` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\n\nUpdates `anyio` from 4.14.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\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/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eUnreleased\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-resource-manager` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-resource-manager's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-resource-manager: v1.18.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003e1.18.0\u003c/a\u003e (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eregenerate google-cloud-[o-r] packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17075\"\u003e#17075\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f4bd0182d808ae73c3c6981e6ce3d565f78a6051\"\u003ef4bd018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a5ad18cbad0577b79917dfad2242a57dc21432e1\"\u003e\u003ccode\u003ea5ad18c\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17482\"\u003e#17482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f6937b33e31a4c3e884165b582442274a366a995\"\u003e\u003ccode\u003ef6937b3\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-bigtable 2.39.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17497\"\u003e#17497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/172302b809b0ff13267f18b5e7dd24be0dce2f70\"\u003e\u003ccode\u003e172302b\u003c/code\u003e\u003c/a\u003e ci(bigquery-storage): fix \u003ccode\u003ecore_deps_from_source\u003c/code\u003e and \u003ccode\u003eprerelease_deps\u003c/code\u003e by in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e7268785c6736c10c1337160b4d8606975062637\"\u003e\u003ccode\u003ee726878\u003c/code\u003e\u003c/a\u003e fix(bigframes): world-readable temp zip in create_cloud_function (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17522\"\u003e#17522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2f893b1b53e7394655fd204d1f8a138212ad8227\"\u003e\u003ccode\u003e2f893b1\u003c/code\u003e\u003c/a\u003e fix: bump \u003ccode\u003e@​angular/common\u003c/code\u003e, \u003ccode\u003e@​angular/forms\u003c/code\u003e, \u003ccode\u003e@​angular/platform-browser\u003c/code\u003e and \u003ca href=\"https://github.com/ang\"\u003e\u003ccode\u003e@​ang\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f23063f9182cdec868c16afb80304892850fbe88\"\u003e\u003ccode\u003ef23063f\u003c/code\u003e\u003c/a\u003e fix: bump langsmith from 0.8.0 to 0.8.18 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17518\"\u003e#17518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6fc45e3790c5a248dcec4b74799834c7b9219ef0\"\u003e\u003ccode\u003e6fc45e3\u003c/code\u003e\u003c/a\u003e fix: bump undici and \u003ccode\u003e@​angular/build\u003c/code\u003e in /packages/bigframes/bigframes/display/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/36b5b7ebb01030a2d0f10d49fe4827ddc79dde9a\"\u003e\u003ccode\u003e36b5b7e\u003c/code\u003e\u003c/a\u003e fix: bump msgpack from 1.1.1 to 1.2.1 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17520\"\u003e#17520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/11de93965831311445abacaec2d7baeef21f837d\"\u003e\u003ccode\u003e11de939\u003c/code\u003e\u003c/a\u003e tests: add Python 3.15 pre-release testing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17517\"\u003e#17517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/025840544f5d4ab6a429d1cd9bdbb256c981aa0d\"\u003e\u003ccode\u003e0258405\u003c/code\u003e\u003c/a\u003e fix(bigquery): close GAPIC storage transport and auth sessions to prevent soc...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-genai` from 2.9.0 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/releases\"\u003egoogle-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md\"\u003egoogle-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/e41801cd1ad7406b9f63b4a5a0924096765cf772\"\u003e\u003ccode\u003ee41801c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.10.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-genai/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ab37930697772e9d11546b5c48b76f1401ee8d1e\"\u003e\u003ccode\u003eab37930\u003c/code\u003e\u003c/a\u003e chore: Disable ComputerUse.disabled_safety_policies in Gemini Enterprise API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003e\u003ccode\u003eec8f22b\u003c/code\u003e\u003c/a\u003e feat: add video generation and response format parameters.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e\u003ccode\u003e7bb6c72\u003c/code\u003e\u003c/a\u003e feat: add usage fields for steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e\u003ccode\u003e732368f\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003e\u003ccode\u003ea359406\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003e\u003ccode\u003ea4772cc\u003c/code\u003e\u003c/a\u003e feat: Add Agent Platform MCP support to async generate_content_stream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/67703bf194d1ab3784d6f2b6814c38d2e7c7554b\"\u003e\u003ccode\u003e67703bf\u003c/code\u003e\u003c/a\u003e chore: Fix comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e\u003ccode\u003e63ec5bb\u003c/code\u003e\u003c/a\u003e docs: fix typos across docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/3260c6f6f6971a1f5fd21a16416204f808df9b22\"\u003e\u003ccode\u003e3260c6f\u003c/code\u003e\u003c/a\u003e chore: Upgrade stalebot action to use v10 (due to Node20 deprecation)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.20.1 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.21.0] Jobs filtering \u0026amp; pagination\u003c/h2\u003e\n\u003ch2\u003e📊 Jobs listing revamped: filter, paginate, and \u003ccode\u003els\u003c/code\u003e instead of \u003ccode\u003eps\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe Jobs listing API and CLI have been overhauled with server-side filtering, proper pagination, and a CLI rename that aligns with the rest of \u003ccode\u003ehf\u003c/code\u003e. \u003ccode\u003elist_jobs()\u003c/code\u003e now accepts \u003ccode\u003estatus\u003c/code\u003e and \u003ccode\u003elabels\u003c/code\u003e parameters that push filtering to the server, and returns a lazy iterator (matching \u003ccode\u003elist_models\u003c/code\u003e, \u003ccode\u003elist_datasets\u003c/code\u003e, etc.) so large result sets are fetched page by page. On the CLI side, \u003ccode\u003ehf jobs ps\u003c/code\u003e has been renamed to \u003ccode\u003ehf jobs ls\u003c/code\u003e for consistency with \u003ccode\u003ehf repos ls\u003c/code\u003e, \u003ccode\u003ehf models ls\u003c/code\u003e, and friends — \u003ccode\u003eps\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e still work as aliases.\u003c/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eBreaking changes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elist_jobs()\u003c/code\u003e now returns an \u003ccode\u003eIterable[JobInfo]\u003c/code\u003e instead of \u003ccode\u003elist[JobInfo]\u003c/code\u003e. If you indexed the result (\u003ccode\u003ejobs[0]\u003c/code\u003e), wrap it with \u003ccode\u003elist(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-f\u003c/code\u003e/\u003ccode\u003e--filter\u003c/code\u003e in \u003ccode\u003ehf jobs ls\u003c/code\u003e is deprecated. Use \u003ccode\u003e--status\u003c/code\u003e and \u003ccode\u003e--label\u003c/code\u003e instead. Glob patterns (\u003ccode\u003edata-*\u003c/code\u003e), negation (\u003ccode\u003ekey!=value\u003c/code\u003e), and filtering by \u003ccode\u003eid\u003c/code\u003e/\u003ccode\u003eimage\u003c/code\u003e/\u003ccode\u003ecommand\u003c/code\u003e are no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom huggingface_hub import list_jobs\r\n\u003ch1\u003eFilter by status and labels\u003c/h1\u003e\n\u003cp\u003elist_jobs(status=[\u0026quot;RUNNING\u0026quot;, \u0026quot;SCHEDULING\u0026quot;], labels={\u0026quot;env\u0026quot;: \u0026quot;prod\u0026quot;})\u003c/p\u003e\n\u003ch1\u003eIterate lazily\u003c/h1\u003e\n\u003cp\u003efor job in list_jobs():\nprint(job.id)\u003c/p\u003e\n\u003ch1\u003eMaterialize all results\u003c/h1\u003e\n\u003cp\u003eall_jobs = list(list_jobs())\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Filter by status and labels\r\nhf jobs ls --status running,scheduling --label env=prod --label team=ml\r\n\r\n# Paginate with --limit\r\nhf jobs ls -a --limit 500\r\nhf jobs ls -a --limit 0  # no limit\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add stage/label filtering to list_jobs API and CLI by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias) by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4409\"\u003e#4409\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli\"\u003eCLI guide\u003c/a\u003e, \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/jobs\"\u003eJobs guide\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Fix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA regression introduced in v1.20.0 caused \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e to raise an \u003ccode\u003eImportError\u003c/code\u003e on a fresh interpreter, due to a circular dependency between \u003ccode\u003e_oauth_device\u003c/code\u003e and \u003ccode\u003eutils._http\u003c/code\u003e. The fix moves \u003ccode\u003e_oauth_device.py\u003c/code\u003e into the \u003ccode\u003eutils\u003c/code\u003e layer so all imports resolve downward, eliminating the cycle. No lazy imports or workarounds required.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4385\"\u003e#4385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Other QoL Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetry requests on httpx.RemoteProtocolError by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\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/huggingface/huggingface_hub/commit/aea9b9de1284f54862df99820f963d6030803860\"\u003e\u003ccode\u003eaea9b9d\u003c/code\u003e\u003c/a\u003e Release: v1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e2ed568a0d8e3841d2fe9d192f17cdb30ccf129\"\u003e\u003ccode\u003e2e2ed56\u003c/code\u003e\u003c/a\u003e Release: v1.21.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4bd4c906cac546643ca5fe0ca08e301ce7a98b62\"\u003e\u003ccode\u003e4bd4c90\u003c/code\u003e\u003c/a\u003e [CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/fa3eb459eb3fdf15347930d7dc70f0a7e413d6e5\"\u003e\u003ccode\u003efa3eb45\u003c/code\u003e\u003c/a\u003e [Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ecfd4c5e88acfa885fc9146bf5df61d4de7b46a9\"\u003e\u003ccode\u003eecfd4c5\u003c/code\u003e\u003c/a\u003e [CLI] Fix ty/mypy errors with click 8.4.2 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4408\"\u003e#4408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/341469f1f87fb9932410fde9bdb81ac269a64727\"\u003e\u003ccode\u003e341469f\u003c/code\u003e\u003c/a\u003e Update hardware flavor enums (automated commit) (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4406\"\u003e#4406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2fbcdfeec8a1bf689623ecb87afc7d5db4cd23bb\"\u003e\u003ccode\u003e2fbcdfe\u003c/code\u003e\u003c/a\u003e [i18n-HI] Add Hindi translation for guides overview (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4405\"\u003e#4405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5bc6bfa7df18752f1adfd649816be315937cfa6f\"\u003e\u003ccode\u003e5bc6bfa\u003c/code\u003e\u003c/a\u003e [Jobs] Add stage/label filtering to list_jobs API and CLI (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/d991f099f53c7439edbf9432c5137d2069199e5a\"\u003e\u003ccode\u003ed991f09\u003c/code\u003e\u003c/a\u003e Fix IndexError in filter_repo_objects on an empty pattern (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4402\"\u003e#4402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/0df783fb8f3d1a37b00255007e9af78e4e9dca8f\"\u003e\u003ccode\u003e0df783f\u003c/code\u003e\u003c/a\u003e Retry requests on httpx.RemoteProtocolError (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.20.1...v1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.9.0 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\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/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/07389c4c4609a49826ea9ed510419c2e32eccee9\"\u003e\u003ccode\u003e07389c4\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#193\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/16fb289d38af0d510e39afcbbd43bace2d6d8dd9\"\u003e\u003ccode\u003e16fb289\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epytest-checkdocs\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.14\u003c/code\u003e to resolve deprecation warnings (jaraco/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d9b029be3925b99d3b0d2ef529d79d0a1b9d2c52\"\u003e\u003ccode\u003ed9b029b\u003c/code\u003e\u003c/a\u003e Don't install (nor run) mypy on PyPy (librt build failures) (jaraco/skeleton#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d5c6862e8d8291aec83aeea8261191e491a63d68\"\u003e\u003ccode\u003ed5c6862\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#183\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/18a676486f8679438a6b16992177dee66f61bcaa\"\u003e\u003ccode\u003e18a6764\u003c/code\u003e\u003c/a\u003e Re-use ExceptionTrap for trapping exceptions.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.9.0...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.15.0 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/785cf750016150bda7410e95525bd6ed398102c4\"\u003e\u003ccode\u003e785cf75\u003c/code\u003e\u003c/a\u003e release: 0.16.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e192631a659bcf251402950b78c5d17a17a9d827\"\u003e\u003ccode\u003ee192631\u003c/code\u003e\u003c/a\u003e Add 'Part of the Pydantic Stack' footer to README (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/c929d0cb4c9f59f9b89d1a0585203924f7a87f3b\"\u003e\u003ccode\u003ec929d0c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eserde\u003c/code\u003e Deserializer implementation (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/253\"\u003e#253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/6d57715e01ec78859c62fc5447073c0b5902de39\"\u003e\u003ccode\u003e6d57715\u003c/code\u003e\u003c/a\u003e Modernize Emscripten CI (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a3a02cdb056233eb89be77e6c5a11044f07b4d20\"\u003e\u003ccode\u003ea3a02cd\u003c/code\u003e\u003c/a\u003e Bump maturin to v1.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2fe4246c71c003ddb32c943e3b432925f05f7d3c\"\u003e\u003ccode\u003e2fe4246\u003c/code\u003e\u003c/a\u003e update to PyO3 0.29 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/1429532d486088de53293b57ad315a501e981e9a\"\u003e\u003ccode\u003e1429532\u003c/code\u003e\u003c/a\u003e Drop support for 3.13t target (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.15.0...v0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.28.0 to 1.28.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/777b8d06710c140e3606b0d4598e2aa48546c266\"\u003e\u003ccode\u003e777b8d0\u003c/code\u003e\u003c/a\u003e [v1.x] Support TransportSecuritySettings in the WebSocket server transport (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/47204674fb26185c2cf45f065831f27b8e5d5c65\"\u003e\u003ccode\u003e4720467\u003c/code\u003e\u003c/a\u003e [v1.x] Set Development Status classifier to Production/Stable (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/6df3d734265eb49bf758a5e5eb420937337184e9\"\u003e\u003ccode\u003e6df3d73\u003c/code\u003e\u003c/a\u003e [v1.x] Buffer per-request StreamableHTTP streams; store priming event before ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.28.0...v1.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.14.6 to 0.17.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose configurable websocket max_size limit by \u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add buffered Chat Completions tool-call streaming by \u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reduce sandbox sink buffering and spool timeouts by \u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3346\"\u003e#3346\u003c/a\u003e clean up branch-only messages when deleting branches by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3347\"\u003eopenai/openai-agents-python#3347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3348\"\u003e#3348\u003c/a\u003e make AdvancedSQLiteSession add_items atomic by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3349\"\u003eopenai/openai-agents-python#3349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cancel sibling guardrail tasks when one raises by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3239\"\u003eopenai/openai-agents-python#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip needs_approval_checker when status resolved in _collect_runs_by_approval by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3259\"\u003eopenai/openai-agents-python#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: validate ls special permission bits by position by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3420\"\u003eopenai/openai-agents-python#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gate remote-mount edit guidance by mode by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3423\"\u003eopenai/openai-agents-python#3423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove dependency on types-requests by \u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: empty list/tuple tool output dropped via all([]) == True by \u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: wake PTY output collection on process exit (E2B) by \u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid stale object-id dedupe in server conversation tracker by \u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: report effective Blaxel timeouts by \u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent ambiguous Realtime multi-agent tool dispatch by \u003ca href=\"https://github.com/mavrickdeveloper\"\u003e\u003ccode\u003e@​mavrickdeveloper\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3441\"\u003eopenai/openai-agents-python#3441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add hint to duplicated MCP server tool name error message by \u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recursively extract HTTP errors from nested ExceptionGroups by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3556\"\u003eopenai/openai-agents-python#3556\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e changes for tool_not_found_behavior option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3462\"\u003eopenai/openai-agents-python#3462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: changes for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e feature addition by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3488\"\u003eopenai/openai-agents-python#3488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix OpenAI capitalization in auto-generated ref titles by \u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add SDK maintainer references and review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3676\"\u003eopenai/openai-agents-python#3676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.7 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3682\"\u003eopenai/openai-agents-python#3682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\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/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8a0e34caaa65b64f5bdf5cf407ac467404c8a106\"\u003e\u003ccode\u003e8a0e34c\u003c/code\u003e\u003c/a\u003e Release 0.17.7 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/30ff4a5239512f8c587b4cd65199e1b3fcf2f6d0\"\u003e\u003ccode\u003e30ff4a5\u003c/code\u003e\u003c/a\u003e fix: recursively extract HTTP errors from nested ExceptionGroups (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3556\"\u003e#3556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16d16ec2be255177af199361757bc8aedc936dd2\"\u003e\u003ccode\u003e16d16ec\u003c/code\u003e\u003c/a\u003e chore: update maintainer-review skill to have two phases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f706d651240aa8e83a536f03d4317d2ff358eefe\"\u003e\u003ccode\u003ef706d65\u003c/code\u003e\u003c/a\u003e chore: adjust examples-auto-run skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2df8adcae7de0802d859e9ac0c6d4755747f17de\"\u003e\u003ccode\u003e2df8adc\u003c/code\u003e\u003c/a\u003e fix: add hint to duplicated MCP server tool name error message (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7192bc968a136a183ae08a5c8d02aee79add41b7\"\u003e\u003ccode\u003e7192bc9\u003c/code\u003e\u003c/a\u003e docs: add SDK maintainer references and review guidance (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3676\"\u003e#3676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a9b7b7ef4a9eb7df50e2d9b837114f899f07b36f\"\u003e\u003ccode\u003ea9b7b7e\u003c/code\u003e\u003c/a\u003e fix(realtime): prevent ambiguous multi-agent tool dispatch (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28d2a6c8382992b80421c9179997492e5fc39ce0\"\u003e\u003ccode\u003e28d2a6c\u003c/code\u003e\u003c/a\u003e feat: add buffered Chat Completions tool-call streaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3506\"\u003e#3506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3f6324c2d2e7cc94d6a44d3e4846d714ed3b83f3\"\u003e\u003ccode\u003e3f6324c\u003c/code\u003e\u003c/a\u003e docs: fix OpenAI capitalization in auto-generated ref titles (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f115dd60159c37f0ca5ed08e6777ff105059e8c2\"\u003e\u003ccode\u003ef115dd6\u003c/code\u003e\u003c/a\u003e fix: reduce sandbox sink buffering and spool timeouts (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3642\"\u003e#3642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 6.33.6 to 7.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/856","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/856","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/856/packages"},{"uuid":"4766766178","node_id":"PR_kwDOS3QlSc7rtSHv","number":57,"state":"open","title":"deps(pip)(deps): update opentelemetry-api requirement from ~=1.30.0 to \u003e=1.30,\u003c1.44","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-29T09:22:52.000Z","updated_at":"2026-06-29T09:23:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(pip)(deps): update","packages":[{"name":"opentelemetry-api","old_version":"~=1.30.0","new_version":"\u003e=1.30,\u003c1.44","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.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/ahmdelbaz28-ux/ETAP-AI-WORK-/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmdelbaz28-ux%2FETAP-AI-WORK-/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"},{"uuid":"4764985404","node_id":"PR_kwDOSR8lhM7rnbHA","number":652,"state":"closed","title":"build(deps): update opentelemetry-api requirement from \u003e=1.41.1 to \u003e=1.43.0 in /packages/sdk-py","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-07-20T04:19:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T04:16:08.000Z","updated_at":"2026-07-20T04:19:46.000Z","time_to_close":1814616,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"opentelemetry-api","old_version":"\u003e=1.41.1","new_version":"\u003e=1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":"/packages/sdk-py","ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.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/kwameasare/loop/pull/652","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwameasare%2Floop/issues/652","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/652/packages"},{"uuid":"4764172419","node_id":"PR_kwDOSUNGws7rk2lG","number":408,"state":"open","title":"fix(deps)(deps): update opentelemetry-api requirement from \u003e=1.42.1 to \u003e=1.43.0 in /apps/backend","user":"dependabot[bot]","labels":["dependencies","python","needs-review","backend","size/XS"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-29T00:36:28.000Z","updated_at":"2026-06-29T00:39:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)(deps): update","packages":[{"name":"opentelemetry-api","old_version":"\u003e=1.42.1","new_version":"\u003e=1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":"/apps/backend","ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.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/founder24/-kalukaliya/pull/408","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/founder24%2F-kalukaliya/issues/408","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/408/packages"},{"uuid":"4755430369","node_id":"PR_kwDOTDSek87rJszd","number":25,"state":"closed","title":"chore(deps): bump the python-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-26T23:23:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-26T22:12:17.000Z","updated_at":"2026-06-26T23:24:03.000Z","time_to_close":4297,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":9,"packages":[{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-asyncpg","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-httpx","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.63b1","new_version":"0.64b0"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 3 updates in the / directory: [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python), [pytest](https://github.com/pytest-dev/pytest) and [ruff](https://github.com/astral-sh/ruff).\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-fastapi` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-fastapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-asyncpg` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-asyncpg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-httpx` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-httpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-logging` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.1.0 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.1.0...9.1.1\"\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.18 to 0.15.20\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.20\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.20\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.20/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.20/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.20\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.20/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.20/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.20/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.20/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.20/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.20/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.20/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.20/ruff-i686-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.20/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-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.20/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.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.20/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz.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.20\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.19\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport human-readable names when hovering suppression comments and in code actions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26114\"\u003e#26114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFall back to default settings when editor-only settings are invalid (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26244\"\u003e#26244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when inserting text at a notebook cell boundary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26111\"\u003e#26111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Update fix suggestions for \u003ccode\u003e__floor__\u003c/code\u003e, \u003ccode\u003e__trunc__\u003c/code\u003e, \u003ccode\u003e__length_hint__\u003c/code\u003e, and \u003ccode\u003e__matmul__\u003c/code\u003e variants (\u003ccode\u003ePLC2801\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26239\"\u003e#26239\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid allocating when parsing single string literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26200\"\u003e#26200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid reallocating singleton call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26223\"\u003e#26223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily create source files for lint diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26226\"\u003e#26226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize formatter text width and indentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26236\"\u003e#26236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReserve capacity for builtin bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26229\"\u003e#26229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip repeated-key checks for singleton dictionaries (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26228\"\u003e#26228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse ArrayVec for qualified name segments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26224\"\u003e#26224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f82a36b6baf8c0547a17bbde6c0d927ccd45d938\"\u003e\u003ccode\u003ef82a36b\u003c/code\u003e\u003c/a\u003e Bump 0.15.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26376\"\u003e#26376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d\"\u003e\u003ccode\u003eaf32943\u003c/code\u003e\u003c/a\u003e Improve the summarise-ecosystem-results skill (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26378\"\u003e#26378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86\"\u003e\u003ccode\u003e485ebab\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eRUF076\u003c/code\u003e name from schema (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b\"\u003e\u003ccode\u003eef81835\u003c/code\u003e\u003c/a\u003e [ty] Implement rust-analyzer's \u0026quot;Click for full compiler diagnostic\u0026quot; feature (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b\"\u003e\u003ccode\u003e572b31e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26240\"\u003e#26240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9\"\u003e\u003ccode\u003ef703f21\u003c/code\u003e\u003c/a\u003e Allow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e\"\u003e\u003ccode\u003e0d726b2\u003c/code\u003e\u003c/a\u003e [ty] Reuse equality semantics for membership compatibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25955\"\u003e#25955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00\"\u003e\u003ccode\u003edbe6e98\u003c/code\u003e\u003c/a\u003e [ty] Infer definite equality comparison results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26337\"\u003e#26337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0\"\u003e\u003ccode\u003ee700ea3\u003c/code\u003e\u003c/a\u003e [ty] Prove TypedDict structural patterns exhaustive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26285\"\u003e#26285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911\"\u003e\u003ccode\u003e6a0d2ec\u003c/code\u003e\u003c/a\u003e [ty] Widen inferred class-valued instance attributes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26338\"\u003e#26338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.18...0.15.20\"\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/primerhq/primer/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/primerhq%2Fprimer/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"},{"uuid":"4687621346","node_id":"PR_kwDOR0Zg2s7nssfT","number":219,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-24T22:49:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-17T22:50:30.000Z","updated_at":"2026-06-24T22:49:04.000Z","time_to_close":604712,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":19,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.26.0","new_version":"2.43.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"locust-plugins","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/SvenskaSpel/locust-plugins"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 19 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.43.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 12 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.43.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.26.0 to 2.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.43.0\u003c/h2\u003e\n\u003ch2\u003e2.43.0 (2026-06-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.42.0...v2.43.0\"\u003ev2.42.0...v2.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/22542358490ef8f31f0d373e17f7b791b3d983ca\"\u003e2254235\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.43.0 (2026-06-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.42.0...v2.43.0\"\u003ev2.42.0...v2.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/22542358490ef8f31f0d373e17f7b791b3d983ca\"\u003e2254235\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\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/openai/openai-python/commit/e20b6b82c145091f0d8412a7e4a9bc5900a40462\"\u003e\u003ccode\u003ee20b6b8\u003c/code\u003e\u003c/a\u003e release: 2.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d354538e8c2618e228c80f1fdc332ee1f70d1f2\"\u003e\u003ccode\u003e4d35453\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2bba15e71817a75e9b8517e09cb244bc144b50d0\"\u003e\u003ccode\u003e2bba15e\u003c/code\u003e\u003c/a\u003e release: 2.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/1ec3e8298982d900d31b486177b5d4cecadcf035\"\u003e\u003ccode\u003e1ec3e82\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/93c2eca17d2d484b95245c849b39f51c6d291478\"\u003e\u003ccode\u003e93c2eca\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b269f88a30fcfbcceea1cc30deb00405db88c5e6\"\u003e\u003ccode\u003eb269f88\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ee821d6b4a59d6b73850640162b6454da434f5f7\"\u003e\u003ccode\u003eee821d6\u003c/code\u003e\u003c/a\u003e feat(api): admin spend_alerts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/60002e574925e84261150f3e01be4bcb53658261\"\u003e\u003ccode\u003e60002e5\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003e\u003ccode\u003ed64d811\u003c/code\u003e\u003c/a\u003e build: Use CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003e\u003ccode\u003ea526ee8\u003c/code\u003e\u003c/a\u003e build: fix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.26.0...v2.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust-plugins` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/releases\"\u003elocust-plugins's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cp\u003eFix --iteration counts again (partially reverting some stuff)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix http status code on jmeter listener report by \u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly count --iterations when we're actually running task functions, not also entire TaskSets by \u003ca href=\"https://github.com/cyberw\"\u003e\u003ccode\u003e@​cyberw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/231\"\u003eSvenskaSpel/locust-plugins#231\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#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/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/d16a309780735dafc488f9ec37eafd4127445a4d\"\u003e\u003ccode\u003ed16a309\u003c/code\u003e\u003c/a\u003e pin old setuptools_scm version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e7adad1f8eb1c5782e4b8a8ed9a02a3e411cbf75\"\u003e\u003ccode\u003ee7adad1\u003c/code\u003e\u003c/a\u003e disable playwright tests for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/3e04c62db49f8cd3d14e3c3461c02d16ffac9119\"\u003e\u003ccode\u003e3e04c62\u003c/code\u003e\u003c/a\u003e register ips and iteration limits on test_start instead of init\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e8180ba7528e529556631f9e0e86c6d0e35ce2b1\"\u003e\u003ccode\u003ee8180ba\u003c/code\u003e\u003c/a\u003e ensure overshoot still stops test for iteration counter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0ff7e1b5e1608a5286d334560eacf7293467aa0a\"\u003e\u003ccode\u003e0ff7e1b\u003c/code\u003e\u003c/a\u003e tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/a8522f3be44b6a2bff731826e085fdfb8581a68a\"\u003e\u003ccode\u003ea8522f3\u003c/code\u003e\u003c/a\u003e gh actions: move timeout setting. stop installing codecov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/b486a07b31c5c9caed5871324b72fa2e524e8fca\"\u003e\u003ccode\u003eb486a07\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/aa58da5230f716ff2397ea18c8ed72227af655a7\"\u003e\u003ccode\u003eaa58da5\u003c/code\u003e\u003c/a\u003e more clear test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0d09d9b501bd591b39e58bbea8182c8a0cb171e5\"\u003e\u003ccode\u003e0d09d9b\u003c/code\u003e\u003c/a\u003e revert to use init event for setting up iteration and ips limits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/18bf2ff13f3febc2ad5c57cc538aff3bb74594d6\"\u003e\u003ccode\u003e18bf2ff\u003c/code\u003e\u003c/a\u003e gh actions: set duration limit as well, in case iteration limiter fails to av...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63b...\n\n_Description has been truncated_","html_url":"https://github.com/V0zz/OTEL_Demo/pull/219","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/V0zz%2FOTEL_Demo/issues/219","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/219/packages"},{"uuid":"4684302882","node_id":"PR_kwDORfLItc7nhsfS","number":267,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T14:40:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-17T14:40:42.000Z","updated_at":"2026-06-18T14:40:16.000Z","time_to_close":86372,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":19,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.24.0","new_version":"2.42.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"locust-plugins","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/SvenskaSpel/locust-plugins"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 19 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.42.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 12 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.42.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.24.0 to 2.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\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/openai/openai-python/commit/2bba15e71817a75e9b8517e09cb244bc144b50d0\"\u003e\u003ccode\u003e2bba15e\u003c/code\u003e\u003c/a\u003e release: 2.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/1ec3e8298982d900d31b486177b5d4cecadcf035\"\u003e\u003ccode\u003e1ec3e82\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/93c2eca17d2d484b95245c849b39f51c6d291478\"\u003e\u003ccode\u003e93c2eca\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b269f88a30fcfbcceea1cc30deb00405db88c5e6\"\u003e\u003ccode\u003eb269f88\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ee821d6b4a59d6b73850640162b6454da434f5f7\"\u003e\u003ccode\u003eee821d6\u003c/code\u003e\u003c/a\u003e feat(api): admin spend_alerts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/60002e574925e84261150f3e01be4bcb53658261\"\u003e\u003ccode\u003e60002e5\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003e\u003ccode\u003ed64d811\u003c/code\u003e\u003c/a\u003e build: Use CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003e\u003ccode\u003ea526ee8\u003c/code\u003e\u003c/a\u003e build: fix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.24.0...v2.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust-plugins` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/releases\"\u003elocust-plugins's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cp\u003eFix --iteration counts again (partially reverting some stuff)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix http status code on jmeter listener report by \u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly count --iterations when we're actually running task functions, not also entire TaskSets by \u003ca href=\"https://github.com/cyberw\"\u003e\u003ccode\u003e@​cyberw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/231\"\u003eSvenskaSpel/locust-plugins#231\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#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/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/d16a309780735dafc488f9ec37eafd4127445a4d\"\u003e\u003ccode\u003ed16a309\u003c/code\u003e\u003c/a\u003e pin old setuptools_scm version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e7adad1f8eb1c5782e4b8a8ed9a02a3e411cbf75\"\u003e\u003ccode\u003ee7adad1\u003c/code\u003e\u003c/a\u003e disable playwright tests for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/3e04c62db49f8cd3d14e3c3461c02d16ffac9119\"\u003e\u003ccode\u003e3e04c62\u003c/code\u003e\u003c/a\u003e register ips and iteration limits on test_start instead of init\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e8180ba7528e529556631f9e0e86c6d0e35ce2b1\"\u003e\u003ccode\u003ee8180ba\u003c/code\u003e\u003c/a\u003e ensure overshoot still stops test for iteration counter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0ff7e1b5e1608a5286d334560eacf7293467aa0a\"\u003e\u003ccode\u003e0ff7e1b\u003c/code\u003e\u003c/a\u003e tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/a8522f3be44b6a2bff731826e085fdfb8581a68a\"\u003e\u003ccode\u003ea8522f3\u003c/code\u003e\u003c/a\u003e gh actions: move timeout setting. stop installing codecov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/b486a07b31c5c9caed5871324b72fa2e524e8fca\"\u003e\u003ccode\u003eb486a07\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/aa58da5230f716ff2397ea18c8ed72227af655a7\"\u003e\u003ccode\u003eaa58da5\u003c/code\u003e\u003c/a\u003e more clear test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0d09d9b501bd591b39e58bbea8182c8a0cb171e5\"\u003e\u003ccode\u003e0d09d9b\u003c/code\u003e\u003c/a\u003e revert to use init event for setting up iteration and ips limits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/18bf2ff13f3febc2ad5c57cc538aff3bb74594d6\"\u003e\u003ccode\u003e18bf2ff\u003c/code\u003e\u003c/a\u003e gh actions: set duration limit as well, in case iteration limiter fails to av...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetr...\n\n_Description has been truncated_","html_url":"https://github.com/owjoel/is469/pull/267","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/owjoel%2Fis469/issues/267","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/267/packages"},{"uuid":"4645526210","node_id":"PR_kwDOQuIFL87lkUhR","number":296,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-15T01:49:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-12T01:50:01.000Z","updated_at":"2026-06-15T01:49:21.000Z","time_to_close":259159,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"grpcio-health-checking","old_version":"1.71.0","new_version":"1.81.1"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.13.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.13.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib), [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger) and [flask](https://github.com/pallets/flask).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.13.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.71.0 to 1.81.1\n\nUpdates `openfeature-hooks-opentelemetry` from 0.3.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.13.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.13.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict oper...\n\n_Description has been truncated_","html_url":"https://github.com/AnnieCynthia134/opentelemetry-demo-application/pull/296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnieCynthia134%2Fopentelemetry-demo-application/issues/296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/296/packages"},{"uuid":"4645245138","node_id":"PR_kwDOSJ-KK87ljcGf","number":132,"state":"closed","title":"Bump the pip-production-dependencies group across 3 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-15T00:37:11.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-12T00:37:20.000Z","updated_at":"2026-06-15T00:37:13.000Z","time_to_close":259191,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-semantic-conventions` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-semantic-conventions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990...\n\n_Description has been truncated_","html_url":"https://github.com/honeycombio/ced-opentelemetry-demo-app-academy-courses/pull/132","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/honeycombio%2Fced-opentelemetry-demo-app-academy-courses/issues/132","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/132/packages"},{"uuid":"4644999923","node_id":"PR_kwDORxQaNc7lirLd","number":204,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-12T23:38:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T23:40:00.000Z","updated_at":"2026-06-12T23:38:47.000Z","time_to_close":86326,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":18,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.26.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 18 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.26.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.26.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https:/...\n\n_Description has been truncated_","html_url":"https://github.com/GuanceDemo/OpenTelemetry_Demo/pull/204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuanceDemo%2FOpenTelemetry_Demo/issues/204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/204/packages"},{"uuid":"4634745208","node_id":"PR_kwDORX-XEs7lB3N7","number":249,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T20:30:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T20:30:18.000Z","updated_at":"2026-06-11T20:30:26.000Z","time_to_close":86406,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.17.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.17.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger), [flask](https://github.com/pallets/flask) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.17.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `openfeature-hooks-opentelemetry` from 0.3.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.17.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.17.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen seriali...\n\n_Description has been truncated_","html_url":"https://github.com/RANJITHKUMARJN/opentelemetrymain/pull/249","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RANJITHKUMARJN%2Fopentelemetrymain/issues/249","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/249/packages"},{"uuid":"4618496313","node_id":"PR_kwDOSbI0jM7kMYwb","number":43,"state":"closed","title":"chore(deps): bump the pip-production-dependencies group across 5 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-16T03:22:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-09T03:23:25.000Z","updated_at":"2026-06-16T03:22:16.000Z","time_to_close":604729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"openai","old_version":"2.34.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.34.0` | `2.41.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 1 update in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 10 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.34.0` | `2.41.0` |\n\nBumps the pip-production-dependencies group with 5 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.34.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.34.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/jaykay9999/mstry/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaykay9999%2Fmstry/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"4618488832","node_id":"PR_kwDOSU0Q9c7kMXSQ","number":48,"state":"closed","title":"chore(deps): bump the pip-production-dependencies group across 5 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-16T03:22:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-09T03:22:01.000Z","updated_at":"2026-06-16T03:22:30.000Z","time_to_close":604827,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"openai","old_version":"2.33.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.33.0` | `2.41.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 1 update in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 10 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.33.0` | `2.41.0` |\n\nBumps the pip-production-dependencies group with 5 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.33.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.33.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/sanjaycloudin/devops-demo/pull/48","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaycloudin%2Fdevops-demo/issues/48","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/48/packages"},{"uuid":"4608885696","node_id":"PR_kwDORQ8Eq87jsrVd","number":87,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 51 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-07T22:11:12.000Z","updated_at":"2026-06-08T01:04:54.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":51,"packages":[{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"transformers","old_version":"5.7.0","new_version":"5.10.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"openai","old_version":"2.32.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.96.0","new_version":"0.107.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.8.4","new_version":"0.8.9","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llama-index-core","old_version":"0.14.20","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.1","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.28","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"elevenlabs","old_version":"2.43.0","new_version":"2.51.0","repository_url":"https://github.com/elevenlabs/elevenlabs-python"},{"name":"onnxruntime","old_version":"1.22.0","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"onnxruntime-gpu","old_version":"1.24.4","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-tools","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"mujoco","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/google-deepmind/mujoco"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.18.0","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"polar-sdk","old_version":"0.31.3","new_version":"0.31.5","repository_url":"https://github.com/polarsource/polar-python"},{"name":"langgraph","old_version":"1.1.6","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"haystack-ai","old_version":"2.27.0","new_version":"2.30.0","repository_url":"https://github.com/deepset-ai/haystack"},{"name":"litellm","old_version":"1.86.2","new_version":"1.88.0","repository_url":"https://github.com/BerriAI/litellm"},{"name":"mkdocs-jupyter","old_version":"0.26.2","new_version":"0.26.3","repository_url":"https://github.com/danielfrg/mkdocs-jupyter"},{"name":"opentelemetry-api","old_version":"1.41.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"langfuse","old_version":"4.3.1","new_version":"4.7.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"gradio","old_version":"6.13.0","new_version":"6.16.0","repository_url":"https://github.com/gradio-app/gradio"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.13.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"boto3","old_version":"1.42.90","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"notion-client","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.197.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"google-cloud-aiplatform","old_version":"1.149.0","new_version":"1.156.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"hypothesis","old_version":"6.151.10","new_version":"6.155.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.5.20","repository_url":"https://github.com/certifi/python-certifi"},{"name":"huggingface-hub","old_version":"1.12.0","new_version":"1.18.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.15","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"}],"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\nBumps the python-minor-patch group with 50 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.7.0` | `5.10.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.96.0` | `0.107.1` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.4` | `0.8.9` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.20` | `0.14.22` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.44.0` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.1` | `2.13.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.28` | `0.0.32` |\n| [elevenlabs](https://github.com/elevenlabs/elevenlabs-python) | `2.43.0` | `2.51.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.0` | `1.26.0` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.24.4` | `1.26.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [grpcio-tools](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [mujoco](https://github.com/google-deepmind/mujoco) | `3.8.0` | `3.9.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.9.0` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.18.0` |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [polar-sdk](https://github.com/polarsource/polar-python) | `0.31.3` | `0.31.5` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.6` | `1.2.4` |\n| [haystack-ai](https://github.com/deepset-ai/haystack) | `2.27.0` | `2.30.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.86.2` | `1.88.0` |\n| [mkdocs-jupyter](https://github.com/danielfrg/mkdocs-jupyter) | `0.26.2` | `0.26.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.1` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.3.1` | `4.7.1` |\n| [gradio](https://github.com/gradio-app/gradio) | `6.13.0` | `6.16.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.13.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.90` | `1.43.24` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `3.0.0` | `3.1.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.197.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.149.0` | `1.156.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.10` | `6.155.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [build](https://github.com/pypa/build) | `1.4.3` | `1.5.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.6.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.5.20` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.12.0` | `1.18.0` |\n| [idna](https://github.com/kjd/idna) | `3.15` | `3.18` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n\n\nUpdates `numpy` from 2.4.4 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.4.6\"\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 `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.7.0 to 5.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.10.2\u003c/h1\u003e\n\u003cp\u003eThere was a big bug in the model conversion of models related to clip, this affected models like sam3 and others. Please make sure to update :pray:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conversion for clip models by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\"\u003ehttps://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003eRelease v5.10.1\u003c/h1\u003e\n\u003cp\u003ev5.10.0 was yanked as we publish on a corrupted branch. Sorry everyone, this happens when we rush a release!!!\u003c/p\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eGemma4 unified+ Gemma4 MTP\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 12B Unified is an \u003cstrong\u003eencoder-free\u003c/strong\u003e multimodal model with pretrained and instruction-tuned variants. Unlike \u003ca href=\"https://github.com/huggingface/transformers/blob/HEAD/gemma4\"\u003estandard Gemma 4\u003c/a\u003e, which uses dedicated encoder towers, Gemma 4 12B Unified projects raw inputs directly into the language model's embedding space through lightweight linear pipelines. This results in a simpler architecture while maintaining strong multimodal performance.\u003c/p\u003e\n\u003cp\u003eKey differences from standard Gemma 4:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo Vision Tower\u003c/strong\u003e: Raw pixel patches are projected directly into LM space via a \u003ccode\u003eDense + LayerNorm\u003c/code\u003e pipeline with factorized 2D positional embeddings, replacing the vision encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo Audio Tower\u003c/strong\u003e: Raw 16 kHz waveform samples are chunked into fixed-length frames and projected through a simple \u003ccode\u003eRMSNorm → Linear\u003c/code\u003e pipeline, replacing the mel spectrogram + Conformer encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShared Multimodal Pipeline\u003c/strong\u003e: Both vision and audio use the same \u003ccode\u003eGemma4UnifiedMultimodalEmbedder\u003c/code\u003e (RMSNorm → Linear) for the final projection to text hidden space.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can find the original Gemma 4 12B Unified checkpoints under the \u003ca href=\"https://huggingface.co/collections/google/gemma-4\"\u003eGemma 4\u003c/a\u003e release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ewho needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e) by \u003ca href=\"https://github.com/douglas-reid\"\u003e\u003ccode\u003e@​douglas-reid\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sgerrard\"\u003e\u003ccode\u003e@​sgerrard\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/molbap\"\u003e\u003ccode\u003e@​molbap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSapiens2\u003c/h3\u003e\n\u003cp\u003eSapiens2 is a family of high-resolution vision transformers pretrained on ~1 billion curated human images, designed for human-centric computer vision tasks including pose estimation, body-part segmentation, surface normal estimation, and pointmap estimation. The models scale from 0.4B to 5B parameters and train at native 1K resolution, with hierarchical 4K variants for extended spatial reasoning. Sapiens2 achieves substantial improvements over its predecessor with +4 mAP in pose estimation, +24.3 mIoU in body-part segmentation, and 45.6% error reduction in normal estimation.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/sapiens2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2604.21681\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45919\"\u003e#45919\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeepSeek-OCR-2\u003c/h3\u003e\n\u003cp\u003eDeepSeek-OCR-2 is an OCR-specialized vision-language model built on a distinctive architecture that combines a SAM ViT-B vision encoder with a Qwen2 hybrid attention encoder, connected through an MLP projector to a DeepSeek-V2 Mixture-of-Experts (MoE) language model. The model features a hybrid attention mechanism that applies bidirectional attention over image tokens and causal attention over query tokens, enabling efficient and accurate document understanding. It supports both plain OCR tasks and grounding capabilities with coordinate-aware output for document conversion to markdown format.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_ocr2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Deepseek-OCR-2 model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45075\"\u003e#45075\u003c/a\u003e) by \u003ca href=\"https://github.com/thisisiron\"\u003e\u003ccode\u003e@​thisisiron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45075\"\u003e#45075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMellum\u003c/h3\u003e\n\u003cp\u003eMellum is a code-focused Mixture-of-Experts language model developed by JetBrains. It is derived from the Qwen3-MoE architecture with per-layer-type RoPE and interleaved sliding window attention. The model has 12B total parameters with 2.5B active parameters per token, using 64 routed experts with 8 activated per token across 28 layers.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/mellum\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add support for JetBrains' \u003ccode\u003eMellum\u003c/code\u003e v2 code generation model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46112\"\u003e#46112\u003c/a\u003e) by \u003ca href=\"https://github.com/shadeMe\"\u003e\u003ccode\u003e@​shadeMe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46112\"\u003e#46112\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/huggingface/transformers/commit/0dad7b822255a0ae261ec45ae937371e859ffd1a\"\u003e\u003ccode\u003e0dad7b8\u003c/code\u003e\u003c/a\u003e v5.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8a4ffee847b90a732a1febefeca5180fffd5596f\"\u003e\u003ccode\u003e8a4ffee\u003c/code\u003e\u003c/a\u003e Fix conversion for clip models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/90c3ae54d448d4906b6167317ea5a7f5d48a232d\"\u003e\u003ccode\u003e90c3ae5\u003c/code\u003e\u003c/a\u003e Patch because we had to yank 5.10 because the release branch was not up to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0bd94b37db639d8f29a094dce2fde06f86af8968\"\u003e\u003ccode\u003e0bd94b3\u003c/code\u003e\u003c/a\u003e v5.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1423d22f7a3b62e8c70ad67b58ec25cd9b675897\"\u003e\u003ccode\u003e1423d22\u003c/code\u003e\u003c/a\u003e who needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/50eb20a24f9dd512e6770072f422e4b86ca3cd98\"\u003e\u003ccode\u003e50eb20a\u003c/code\u003e\u003c/a\u003e Fix dsv4 dequant + tp/ep (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46378\"\u003e#46378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/74464e8c49c91b574c30cc3cb3c5a44000237299\"\u003e\u003ccode\u003e74464e8\u003c/code\u003e\u003c/a\u003e Fix wrong changes produced by style/repo. check bot (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46371\"\u003e#46371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1b8ec344fb6c277235fc76c37e7a5c156a1f0ddc\"\u003e\u003ccode\u003e1b8ec34\u003c/code\u003e\u003c/a\u003e Fix path traversal when saving Bark voice preset embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46237\"\u003e#46237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e820678256f22e7647e39e8b7ed040fa81b7b872\"\u003e\u003ccode\u003ee820678\u003c/code\u003e\u003c/a\u003e Add Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/595721c44cb14db37fa504903e2edd5e9f0eba43\"\u003e\u003ccode\u003e595721c\u003c/code\u003e\u003c/a\u003e Pass library_name/version to Hub calls via a shared HfApi (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46318\"\u003e#46318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.7.0...v5.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.96.0 to 0.107.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.107.1\u003c/h2\u003e\n\u003ch2\u003e0.107.1 (2026-06-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.107.0...v0.107.1\"\u003ev0.107.0...v0.107.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efoundry:\u003c/strong\u003e send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/13381413d22ad14d85e66836c67cc8a13bd2b7bd\"\u003e1338141\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.107.0\u003c/h2\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.106.0\u003c/h2\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.105.2\u003c/h2\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.107.1 (2026-06-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.107.0...v0.107.1\"\u003ev0.107.0...v0.107.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efoundry:\u003c/strong\u003e send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/13381413d22ad14d85e66836c67cc8a13bd2b7bd\"\u003e1338141\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/260e687082dfe2d9b7f20199dc8ab7c9e90ae1de\"\u003e\u003ccode\u003e260e687\u003c/code\u003e\u003c/a\u003e release: 0.107.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49c5395b93f5f38a299b88228964b8267394b9d1\"\u003e\u003ccode\u003e49c5395\u003c/code\u003e\u003c/a\u003e fix(foundry): send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4ceca722bedbd923671365f1a36f86d09fbec657\"\u003e\u003ccode\u003e4ceca72\u003c/code\u003e\u003c/a\u003e release: 0.107.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3a6f9d9c217bdb504ddd229618149ab7e8033ad3\"\u003e\u003ccode\u003e3a6f9d9\u003c/code\u003e\u003c/a\u003e feat(api): small updates to Managed Agents types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6a70c9f72b16b04348564c5b92961a82ebe4b7da\"\u003e\u003ccode\u003e6a70c9f\u003c/code\u003e\u003c/a\u003e release: 0.106.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8fa41c8acf6885fd8b7a0a67f705bbb9d3058672\"\u003e\u003ccode\u003e8fa41c8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f553254640b45aecef37df0000da68dc2bcb9c5\"\u003e\u003ccode\u003e1f55325\u003c/code\u003e\u003c/a\u003e Don't leak ANTHROPIC_API_KEY to the Foundry endpoint (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/18\"\u003e#18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a94498c6aa3dd4e237ed72dacdd26336bbd7d9fc\"\u003e\u003ccode\u003ea94498c\u003c/code\u003e\u003c/a\u003e fix(client): make Foundry client copy() and with_options() work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/907d849f8dfec50dfeda06b5cdde0ee268f9b7f9\"\u003e\u003ccode\u003e907d849\u003c/code\u003e\u003c/a\u003e chore(internal): fix artifact url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9676a5d0d40162a385001f60aa136f97b2718309\"\u003e\u003ccode\u003e9676a5d\u003c/code\u003e\u003c/a\u003e docs: point security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.107.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.4.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.4.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\nfix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\ndocs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\nrelease(anthropic): 1.4.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37757\"\u003e#37757\u003c/a\u003e)\nchore(core): bump \u003ccode\u003euuid-utils\u003c/code\u003e to 0.16.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37699\"\u003e#37699\u003c/a\u003e)\nchore(infra): bump \u003ccode\u003elangchain-tests\u003c/code\u003e floor to 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37610\"\u003e#37610\u003c/a\u003e)\nrelease(standard-tests): 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37609\"\u003e#37609\u003c/a\u003e)\nchore: bump idna from 3.11 to 3.15 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37539\"\u003e#37539\u003c/a\u003e)\nci(infra): harden Dependabot version-bound preservation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37510\"\u003e#37510\u003c/a\u003e)\nhotfix: bump lockfiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37508\"\u003e#37508\u003c/a\u003e)\ndocs(core): note override for \u003ccode\u003e_get_ls_params\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37503\"\u003e#37503\u003c/a\u003e)\nchore(core,langchain,openai): refresh stale OpenAI model references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37487\"\u003e#37487\u003c/a\u003e)\nchore: bump langsmith from 0.7.31 to 0.8.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37395\"\u003e#37395\u003c/a\u003e)\nfix(core): accept \u003ccode\u003eSerializable\u003c/code\u003e constructor-envelope wire shape in \u003ccode\u003e_convert_to_message\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37456\"\u003e#37456\u003c/a\u003e)\nfix(core): preserve chunk \u003ccode\u003eadditional_kwargs\u003c/code\u003e across v3 stream assembly (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37435\"\u003e#37435\u003c/a\u003e)\nfix(core): preserve reasoning blocks alongside tool_call in v3 stream (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37434\"\u003e#37434\u003c/a\u003e)\nchore: bump jupyter-server from 2.17.0 to 2.18.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37354\"\u003e#37354\u003c/a\u003e)\nchore: bump mistune from 3.1.4 to 3.2.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37353\"\u003e#37353\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/langchain-ai/langchain/commit/a401351e12b9a3e1670314adf2f7bbcf8811903c\"\u003e\u003ccode\u003ea401351\u003c/code\u003e\u003c/a\u003e release(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/053c368ba438ca077f1348147fadc5dad16d6898\"\u003e\u003ccode\u003e053c368\u003c/code\u003e\u003c/a\u003e fix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0993edba86014788827144c175499755ec5b9f55\"\u003e\u003ccode\u003e0993edb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37916\"\u003e#37916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/6f7c8f54454ae45b07ca274cbfbb0afb8cef9041\"\u003e\u003ccode\u003e6f7c8f5\u003c/code\u003e\u003c/a\u003e chore: bump starlette from 0.49.1 to 1.0.1 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37899\"\u003e#37899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/586bcd46a17be1eafc61127460d766b2a0611db3\"\u003e\u003ccode\u003e586bcd4\u003c/code\u003e\u003c/a\u003e docs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9eab5237ccf7878648b2d33108a7f7e15331c452\"\u003e\u003ccode\u003e9eab523\u003c/code\u003e\u003c/a\u003e chore: bump requests from 2.34.0 to 2.34.2 in /libs/partners/xai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37903\"\u003e#37903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/be2e8f70bc472354f23e9f62519427dd2de7d332\"\u003e\u003ccode\u003ebe2e8f7\u003c/code\u003e\u003c/a\u003e ci(infra): add \u003ccode\u003eexclude\u003c/code\u003e input to skip libs in scheduled integration tests (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3b999176c84c1236e1f6fbaa5194782360e82264\"\u003e\u003ccode\u003e3b99917\u003c/code\u003e\u003c/a\u003e test(langchain,partners): disable pytest-benchmark under xdist to silence `Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/34af59c1a69c403d7b34d0bbd9ceffd287e3b0ed\"\u003e\u003ccode\u003e34af59c\u003c/code\u003e\u003c/a\u003e fix(partners): cap aiohttp below 3.14 for vcrpy compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37898\"\u003e#37898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/414d7b8e94fca5102e87a1f7a6c70e32622a85b9\"\u003e\u003ccode\u003e414d7b8\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37895\"\u003e#37895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.0...langchain-core==1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langsmith` from 0.8.4 to 0.8.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langsmith-sdk/releases\"\u003elangsmith's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(sandbox): add JS Dockerfile snapshots by \u003ca href=\"https://github.com/langchain-infra\"\u003e\u003ccode\u003e@​langchain-infra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951\"\u003elangchain-ai/langsmith-sdk#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/langchain-ai/langsmith-sdk/pull/2931\"\u003elangchain-ai/langsmith-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump websockets from 15.0.1 to 16.0 in /python 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/langchain-ai/langsmith-sdk/pull/2811\"\u003elangchain-ai/langsmith-sdk#2811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update myst-parser requirement from \u0026gt;=3 to \u0026gt;=4.0.1 in /python 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/langchain-ai/langsmith-sdk/pull/2841\"\u003elangchain-ai/langsmith-sdk#2841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/langchain-ai/langsmith-sdk/pull/2934\"\u003elangchain-ai/langsmith-sdk#2934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump typescript from 5.9.3 to 6.0.3 in /js 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/langchain-ai/langsmith-sdk/pull/2839\"\u003elangchain-ai/langsmith-sdk#2839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python 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/langchain-ai/langsmith-sdk/pull/2960\"\u003elangchain-ai/langsmith-sdk#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python 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/langchain-ai/langsmith-sdk/pull/2961\"\u003elangchain-ai/langsmith-sdk#2961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/langchain-ai/langsmith-sdk/pull/2958\"\u003elangchain-ai/langsmith-sdk#2958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ...\n\n_Description has been truncated_","html_url":"https://github.com/anulum/director-ai/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anulum%2Fdirector-ai/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"},{"uuid":"4607089172","node_id":"PR_kwDORQ8Eq87jnIhL","number":77,"state":"closed","title":"chore(deps): bump the python-minor-patch group with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":"2026-06-07T22:06:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-07T11:09:48.000Z","updated_at":"2026-06-07T22:08:20.000Z","time_to_close":39429,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":50,"packages":[{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"transformers","old_version":"5.7.0","new_version":"5.10.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"openai","old_version":"2.32.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.96.0","new_version":"0.107.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.8.4","new_version":"0.8.9","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llama-index-core","old_version":"0.14.20","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.1","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.28","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"elevenlabs","old_version":"2.43.0","new_version":"2.51.0","repository_url":"https://github.com/elevenlabs/elevenlabs-python"},{"name":"onnxruntime","old_version":"1.22.0","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"onnxruntime-gpu","old_version":"1.24.4","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-tools","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"mujoco","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/google-deepmind/mujoco"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"weaviate-client","old_version":"4.20.5","new_version":"4.16.2","repository_url":"https://github.com/weaviate/weaviate-python-client"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.18.0","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"polar-sdk","old_version":"0.31.3","new_version":"0.31.5","repository_url":"https://github.com/polarsource/polar-python"},{"name":"langgraph","old_version":"1.1.6","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"haystack-ai","old_version":"2.27.0","new_version":"2.30.0","repository_url":"https://github.com/deepset-ai/haystack"},{"name":"litellm","old_version":"1.86.2","new_version":"1.88.0","repository_url":"https://github.com/BerriAI/litellm"},{"name":"mkdocs-jupyter","old_version":"0.26.2","new_version":"0.26.3","repository_url":"https://github.com/danielfrg/mkdocs-jupyter"},{"name":"opentelemetry-api","old_version":"1.41.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"langfuse","old_version":"4.3.1","new_version":"4.7.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"gradio","old_version":"6.13.0","new_version":"6.16.0","repository_url":"https://github.com/gradio-app/gradio"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.13.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"boto3","old_version":"1.42.90","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"notion-client","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.197.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"google-cloud-aiplatform","old_version":"1.149.0","new_version":"1.156.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"hypothesis","old_version":"6.151.10","new_version":"6.155.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.5.20","repository_url":"https://github.com/certifi/python-certifi"},{"name":"huggingface-hub","old_version":"1.12.0","new_version":"1.18.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.15","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 50 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.7.0` | `5.10.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.96.0` | `0.107.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.4` | `0.8.9` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.20` | `0.14.22` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.44.0` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.1` | `2.13.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.28` | `0.0.32` |\n| [elevenlabs](https://github.com/elevenlabs/elevenlabs-python) | `2.43.0` | `2.51.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.0` | `1.26.0` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.24.4` | `1.26.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [grpcio-tools](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [mujoco](https://github.com/google-deepmind/mujoco) | `3.8.0` | `3.9.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.9.0` |\n| [weaviate-client](https://github.com/weaviate/weaviate-python-client) | `4.20.5` | `4.16.2` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.18.0` |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [polar-sdk](https://github.com/polarsource/polar-python) | `0.31.3` | `0.31.5` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.6` | `1.2.4` |\n| [haystack-ai](https://github.com/deepset-ai/haystack) | `2.27.0` | `2.30.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.86.2` | `1.88.0` |\n| [mkdocs-jupyter](https://github.com/danielfrg/mkdocs-jupyter) | `0.26.2` | `0.26.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.1` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.3.1` | `4.7.1` |\n| [gradio](https://github.com/gradio-app/gradio) | `6.13.0` | `6.16.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.13.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.90` | `1.43.24` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `3.0.0` | `3.1.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.197.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.149.0` | `1.156.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.10` | `6.155.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [build](https://github.com/pypa/build) | `1.4.3` | `1.5.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.6.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.5.20` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.12.0` | `1.18.0` |\n| [idna](https://github.com/kjd/idna) | `3.15` | `3.18` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n\nUpdates `numpy` from 2.4.4 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.4.6\"\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 `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.7.0 to 5.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.10.2\u003c/h1\u003e\n\u003cp\u003eThere was a big bug in the model conversion of models related to clip, this affected models like sam3 and others. Please make sure to update :pray:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conversion for clip models by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\"\u003ehttps://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003eRelease v5.10.1\u003c/h1\u003e\n\u003cp\u003ev5.10.0 was yanked as we publish on a corrupted branch. Sorry everyone, this happens when we rush a release!!!\u003c/p\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eGemma4 unified+ Gemma4 MTP\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 12B Unified is an \u003cstrong\u003eencoder-free\u003c/strong\u003e multimodal model with pretrained and instruction-tuned variants. Unlike \u003ca href=\"https://github.com/huggingface/transformers/blob/HEAD/gemma4\"\u003estandard Gemma 4\u003c/a\u003e, which uses dedicated encoder towers, Gemma 4 12B Unified projects raw inputs directly into the language model's embedding space through lightweight linear pipelines. This results in a simpler architecture while maintaining strong multimodal performance.\u003c/p\u003e\n\u003cp\u003eKey differences from standard Gemma 4:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo Vision Tower\u003c/strong\u003e: Raw pixel patches are projected directly into LM space via a \u003ccode\u003eDense + LayerNorm\u003c/code\u003e pipeline with factorized 2D positional embeddings, replacing the vision encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo Audio Tower\u003c/strong\u003e: Raw 16 kHz waveform samples are chunked into fixed-length frames and projected through a simple \u003ccode\u003eRMSNorm → Linear\u003c/code\u003e pipeline, replacing the mel spectrogram + Conformer encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShared Multimodal Pipeline\u003c/strong\u003e: Both vision and audio use the same \u003ccode\u003eGemma4UnifiedMultimodalEmbedder\u003c/code\u003e (RMSNorm → Linear) for the final projection to text hidden space.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can find the original Gemma 4 12B Unified checkpoints under the \u003ca href=\"https://huggingface.co/collections/google/gemma-4\"\u003eGemma 4\u003c/a\u003e release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ewho needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e) by \u003ca href=\"https://github.com/douglas-reid\"\u003e\u003ccode\u003e@​douglas-reid\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sgerrard\"\u003e\u003ccode\u003e@​sgerrard\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/molbap\"\u003e\u003ccode\u003e@​molbap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSapiens2\u003c/h3\u003e\n\u003cp\u003eSapiens2 is a family of high-resolution vision transformers pretrained on ~1 billion curated human images, designed for human-centric computer vision tasks including pose estimation, body-part segmentation, surface normal estimation, and pointmap estimation. The models scale from 0.4B to 5B parameters and train at native 1K resolution, with hierarchical 4K variants for extended spatial reasoning. Sapiens2 achieves substantial improvements over its predecessor with +4 mAP in pose estimation, +24.3 mIoU in body-part segmentation, and 45.6% error reduction in normal estimation.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/sapiens2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2604.21681\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45919\"\u003e#45919\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeepSeek-OCR-2\u003c/h3\u003e\n\u003cp\u003eDeepSeek-OCR-2 is an OCR-specialized vision-language model built on a distinctive architecture that combines a SAM ViT-B vision encoder with a Qwen2 hybrid attention encoder, connected through an MLP projector to a DeepSeek-V2 Mixture-of-Experts (MoE) language model. The model features a hybrid attention mechanism that applies bidirectional attention over image tokens and causal attention over query tokens, enabling efficient and accurate document understanding. It supports both plain OCR tasks and grounding capabilities with coordinate-aware output for document conversion to markdown format.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_ocr2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Deepseek-OCR-2 model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45075\"\u003e#45075\u003c/a\u003e) by \u003ca href=\"https://github.com/thisisiron\"\u003e\u003ccode\u003e@​thisisiron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45075\"\u003e#45075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMellum\u003c/h3\u003e\n\u003cp\u003eMellum is a code-focused Mixture-of-Experts language model developed by JetBrains. It is derived from the Qwen3-MoE architecture with per-layer-type RoPE and interleaved sliding window attention. The model has 12B total parameters with 2.5B active parameters per token, using 64 routed experts with 8 activated per token across 28 layers.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/mellum\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add support for JetBrains' \u003ccode\u003eMellum\u003c/code\u003e v2 code generation model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46112\"\u003e#46112\u003c/a\u003e) by \u003ca href=\"https://github.com/shadeMe\"\u003e\u003ccode\u003e@​shadeMe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46112\"\u003e#46112\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/huggingface/transformers/commit/0dad7b822255a0ae261ec45ae937371e859ffd1a\"\u003e\u003ccode\u003e0dad7b8\u003c/code\u003e\u003c/a\u003e v5.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8a4ffee847b90a732a1febefeca5180fffd5596f\"\u003e\u003ccode\u003e8a4ffee\u003c/code\u003e\u003c/a\u003e Fix conversion for clip models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/90c3ae54d448d4906b6167317ea5a7f5d48a232d\"\u003e\u003ccode\u003e90c3ae5\u003c/code\u003e\u003c/a\u003e Patch because we had to yank 5.10 because the release branch was not up to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0bd94b37db639d8f29a094dce2fde06f86af8968\"\u003e\u003ccode\u003e0bd94b3\u003c/code\u003e\u003c/a\u003e v5.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1423d22f7a3b62e8c70ad67b58ec25cd9b675897\"\u003e\u003ccode\u003e1423d22\u003c/code\u003e\u003c/a\u003e who needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/50eb20a24f9dd512e6770072f422e4b86ca3cd98\"\u003e\u003ccode\u003e50eb20a\u003c/code\u003e\u003c/a\u003e Fix dsv4 dequant + tp/ep (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46378\"\u003e#46378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/74464e8c49c91b574c30cc3cb3c5a44000237299\"\u003e\u003ccode\u003e74464e8\u003c/code\u003e\u003c/a\u003e Fix wrong changes produced by style/repo. check bot (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46371\"\u003e#46371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1b8ec344fb6c277235fc76c37e7a5c156a1f0ddc\"\u003e\u003ccode\u003e1b8ec34\u003c/code\u003e\u003c/a\u003e Fix path traversal when saving Bark voice preset embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46237\"\u003e#46237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e820678256f22e7647e39e8b7ed040fa81b7b872\"\u003e\u003ccode\u003ee820678\u003c/code\u003e\u003c/a\u003e Add Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/595721c44cb14db37fa504903e2edd5e9f0eba43\"\u003e\u003ccode\u003e595721c\u003c/code\u003e\u003c/a\u003e Pass library_name/version to Hub calls via a shared HfApi (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46318\"\u003e#46318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.7.0...v5.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.96.0 to 0.107.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.107.0\u003c/h2\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.106.0\u003c/h2\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.105.2\u003c/h2\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.105.1\u003c/h2\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e use Trusted Publishing for PyPI releases (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d04fc52d2dd1f88e22808de2c53b0d66913631f\"\u003e1d04fc5\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/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.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e use Trusted Publishing for PyPI releases (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d04fc52d2dd1f88e22808de2c53b0d66913631f\"\u003e1d04fc5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.104.1...v0.105.0\"\u003ev0.104.1...v0.105.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4ceca722bedbd923671365f1a36f86d09fbec657\"\u003e\u003ccode\u003e4ceca72\u003c/code\u003e\u003c/a\u003e release: 0.107.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3a6f9d9c217bdb504ddd229618149ab7e8033ad3\"\u003e\u003ccode\u003e3a6f9d9\u003c/code\u003e\u003c/a\u003e feat(api): small updates to Managed Agents types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6a70c9f72b16b04348564c5b92961a82ebe4b7da\"\u003e\u003ccode\u003e6a70c9f\u003c/code\u003e\u003c/a\u003e release: 0.106.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8fa41c8acf6885fd8b7a0a67f705bbb9d3058672\"\u003e\u003ccode\u003e8fa41c8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f553254640b45aecef37df0000da68dc2bcb9c5\"\u003e\u003ccode\u003e1f55325\u003c/code\u003e\u003c/a\u003e Don't leak ANTHROPIC_API_KEY to the Foundry endpoint (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/18\"\u003e#18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a94498c6aa3dd4e237ed72dacdd26336bbd7d9fc\"\u003e\u003ccode\u003ea94498c\u003c/code\u003e\u003c/a\u003e fix(client): make Foundry client copy() and with_options() work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/907d849f8dfec50dfeda06b5cdde0ee268f9b7f9\"\u003e\u003ccode\u003e907d849\u003c/code\u003e\u003c/a\u003e chore(internal): fix artifact url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9676a5d0d40162a385001f60aa136f97b2718309\"\u003e\u003ccode\u003e9676a5d\u003c/code\u003e\u003c/a\u003e docs: point security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80c95b8cc47e2e0600be68dda707b3a7231929c8\"\u003e\u003ccode\u003e80c95b8\u003c/code\u003e\u003c/a\u003e chore(internal): fix branch names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e5584f948a8692b0fb205248324eb89f269b9b5a\"\u003e\u003ccode\u003ee5584f9\u003c/code\u003e\u003c/a\u003e chore(internal): update private repo name\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.107.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.4.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.4.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\nfix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\ndocs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\nrelease(anthropic): 1.4.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37757\"\u003e#37757\u003c/a\u003e)\nchore(core): bump \u003ccode\u003euuid-utils\u003c/code\u003e to 0.16.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37699\"\u003e#37699\u003c/a\u003e)\nchore(infra): bump \u003ccode\u003elangchain-tests\u003c/code\u003e floor to 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37610\"\u003e#37610\u003c/a\u003e)\nrelease(standard-tests): 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37609\"\u003e#37609\u003c/a\u003e)\nchore: bump idna from 3.11 to 3.15 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37539\"\u003e#37539\u003c/a\u003e)\nci(infra): harden Dependabot version-bound preservation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37510\"\u003e#37510\u003c/a\u003e)\nhotfix: bump lockfiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37508\"\u003e#37508\u003c/a\u003e)\ndocs(core): note override for \u003ccode\u003e_get_ls_params\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37503\"\u003e#37503\u003c/a\u003e)\nchore(core,langchain,openai): refresh stale OpenAI model references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37487\"\u003e#37487\u003c/a\u003e)\nchore: bump langsmith from 0.7.31 to 0.8.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37395\"\u003e#37395\u003c/a\u003e)\nfix(core): accept \u003ccode\u003eSerializable\u003c/code\u003e constructor-envelope wire shape in \u003ccode\u003e_convert_to_message\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37456\"\u003e#37456\u003c/a\u003e)\nfix(core): preserve chunk \u003ccode\u003eadditional_kwargs\u003c/code\u003e across v3 stream assembly (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37435\"\u003e#37435\u003c/a\u003e)\nfix(core): preserve reasoning blocks alongside tool_call in v3 stream (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37434\"\u003e#37434\u003c/a\u003e)\nchore: bump jupyter-server from 2.17.0 to 2.18.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37354\"\u003e#37354\u003c/a\u003e)\nchore: bump mistune from 3.1.4 to 3.2.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37353\"\u003e#37353\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/langchain-ai/langchain/commit/a401351e12b9a3e1670314adf2f7bbcf8811903c\"\u003e\u003ccode\u003ea401351\u003c/code\u003e\u003c/a\u003e release(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/053c368ba438ca077f1348147fadc5dad16d6898\"\u003e\u003ccode\u003e053c368\u003c/code\u003e\u003c/a\u003e fix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0993edba86014788827144c175499755ec5b9f55\"\u003e\u003ccode\u003e0993edb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37916\"\u003e#37916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/6f7c8f54454ae45b07ca274cbfbb0afb8cef9041\"\u003e\u003ccode\u003e6f7c8f5\u003c/code\u003e\u003c/a\u003e chore: bump starlette from 0.49.1 to 1.0.1 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37899\"\u003e#37899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/586bcd46a17be1eafc61127460d766b2a0611db3\"\u003e\u003ccode\u003e586bcd4\u003c/code\u003e\u003c/a\u003e docs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9eab5237ccf7878648b2d33108a7f7e15331c452\"\u003e\u003ccode\u003e9eab523\u003c/code\u003e\u003c/a\u003e chore: bump requests from 2.34.0 to 2.34.2 in /libs/partners/xai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37903\"\u003e#37903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/be2e8f70bc472354f23e9f62519427dd2de7d332\"\u003e\u003ccode\u003ebe2e8f7\u003c/code\u003e\u003c/a\u003e ci(infra): add \u003ccode\u003eexclude\u003c/code\u003e input to skip libs in scheduled integration tests (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3b999176c84c1236e1f6fbaa5194782360e82264\"\u003e\u003ccode\u003e3b99917\u003c/code\u003e\u003c/a\u003e test(langchain,partners): disable pytest-benchmark under xdist to silence `Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/34af59c1a69c403d7b34d0bbd9ceffd287e3b0ed\"\u003e\u003ccode\u003e34af59c\u003c/code\u003e\u003c/a\u003e fix(partners): cap aiohttp below 3.14 for vcrpy compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37898\"\u003e#37898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/414d7b8e94fca5102e87a1f7a6c70e32622a85b9\"\u003e\u003ccode\u003e414d7b8\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37895\"\u003e#37895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.0...langchain-core==1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langsmith` from 0.8.4 to 0.8.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langsmith-sdk/releases\"\u003elangsmith's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(sandbox): add JS Dockerfile snapshots by \u003ca href=\"https://github.com/langchain-infra\"\u003e\u003ccode\u003e@​langchain-infra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951\"\u003elangchain-ai/langsmith-sdk#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/langchain-ai/langsmith-sdk/pull/2931\"\u003elangchain-ai/langsmith-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump websockets from 15.0.1 to 16.0 in /python 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/langchain-ai/langsmith-sdk/pull/2811\"\u003elangchain-ai/langsmith-sdk#2811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update myst-parser requirement from \u0026gt;=3 to \u0026gt;=4.0.1 in /python 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/langchain-ai/langsmith-sdk/pull/2841\"\u003elangchain-ai/langsmith-sdk#2841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/langchain-ai/langsmith-sdk/pull/2934\"\u003elangchain-ai/langsmith-sdk#2934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump typescript from 5.9.3 to 6.0.3 in /js 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/langchain-ai/langsmith-sdk/pull/2839\"\u003elangchain-ai/langsmith-sdk#2839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python 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/langchain-ai/langsmith-sdk/pull/2960\"\u003elangchain-ai/langsmith-sdk#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python 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/langchain-ai/langsmith-sdk/pull/2961\"\u003elangchain-ai/langsmith-sdk#2961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/langchain-ai/langsmith-sdk/pull/2958\"\u003elangchain-ai/langsmith-sdk#2958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 in /python 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/langchain-ai/langsmith-sdk/pull/2959\"\u003elangchain-ai/langsmith-sdk#2959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add minimum workflow permissions by \u003ca href=\"https://github.com/jkennedyvz\"\u003e\u003ccode\u003e@​jkennedyvz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2967\"\u003elangchain-ai/langsmith-sdk#2967\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/anulum/director-ai/pull/77","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anulum%2Fdirector-ai/issues/77","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/77/packages"},{"uuid":"4606167189","node_id":"PR_kwDOSXLGM87jkUY4","number":17,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-14T04:29:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-07T04:33:29.000Z","updated_at":"2026-06-14T04:29:59.000Z","time_to_close":604588,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":26,"packages":[{"name":"apprise","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cyclopts","old_version":"4.15.0","new_version":"4.16.1","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.20.3","new_version":"0.21.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.19","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-shell","old_version":"0.3.5","new_version":"0.3.6","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-dask","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-github","old_version":"0.4.2","new_version":"0.4.3","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-dbt","old_version":"0.7.24","new_version":"0.7.25","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-snowflake","old_version":"0.28.7","new_version":"0.28.8","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.2.1","new_version":"5.2.2","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.409","new_version":"1.1.410","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"redis","old_version":"7.4.0","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"virtualenv","old_version":"21.3.3","new_version":"21.4.2","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.11.0` |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.15.0` | `4.16.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.49.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.20.3` | `0.21.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.19` |\n| [prefect-shell](https://github.com/PrefectHQ/prefect) | `0.3.5` | `0.3.6` |\n| [prefect-dask](https://github.com/PrefectHQ/prefect) | `0.3.6` | `0.3.7` |\n| [prefect-github](https://github.com/PrefectHQ/prefect) | `0.4.2` | `0.4.3` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.24` | `0.7.25` |\n| [prefect-snowflake](https://github.com/PrefectHQ/prefect) | `0.28.7` | `0.28.8` |\n| [moto](https://github.com/getmoto/moto) | `5.2.1` | `5.2.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.409` | `1.1.410` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `8.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.3.3` | `21.4.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.16` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `apprise` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eA big win for this release is priortization of grouped/tagged content. Basically, this release allows you to tag multiple items and provide a weight to them.   Apprise will attempt to notify the highest priority/weighted services first (of same level), and only if this level fails will it try the next.  Tagging is no longer just a \u003ccode\u003etag\u003c/code\u003e.  It's now \u003ccode\u003eweight:tag\u003c/code\u003e too;  for example \u003ccode\u003e100:friends\u003c/code\u003e  associates the weight of \u003ccode\u003e100\u003c/code\u003e with the tag \u003ccode\u003efriends\u003c/code\u003e.  You can still continue to notify friends with your Apprise calls, but if there are weight categories, then these will be factored into the order.  Highest priority (weighted) tags have a lower integer value (zero being the  higest priority).  Only the next priority will be notified if the first fails.\u003c/p\u003e\n\u003cp\u003eThis releae also allows you to set up a notifiation service to gracefully fail and not have Apprise itself report a failure.  This is useful for situations where you notify several end points and you really don't care if they're unavailable or not.   Apprise wil do it's usual best effort to send the notification, but not treat it as a failure if it can't get through. Use \u003ccode\u003eoptional=yes\u003c/code\u003e on your Apprise URL.\u003c/p\u003e\n\u003cp\u003eThirdly, this release introduces retries! You can now have Apprise attempt to notify your endpoint a second, or a third, (up to 10x) tries before giving up and deeming it unable to send the notification.  Use \u003ccode\u003eretry=X\u003c/code\u003e on your Apprise URL\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Zoom (Incoming Webhook) Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1596\"\u003ecaronc/apprise#1596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded WeChat Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1598\"\u003ecaronc/apprise#1598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRingCentral Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/878\"\u003ecaronc/apprise#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSession Open Group Server Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1615\"\u003ecaronc/apprise#1615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded HumHub Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1623\"\u003ecaronc/apprise#1623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon Chime Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1627\"\u003ecaronc/apprise#1627\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGroupMe Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1629\"\u003ecaronc/apprise#1629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimproved robustness of windows test cases preventing others from passing in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1609\"\u003ecaronc/apprise#1609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle XMPP SASL SCRAM-PLUS / Channel Binding in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1619\"\u003ecaronc/apprise#1619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTRACE logging during apprise init cleaned up in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1622\"\u003ecaronc/apprise#1622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed mastodon error: AttributeError -  'list' object has no attribute 'union' in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1631\"\u003ecaronc/apprise#1631\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eo365:// saveToSentItems configurable - ?savesent=no in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1599\"\u003ecaronc/apprise#1599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated WhatsApp Buisness Graph API to v21 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1603\"\u003ecaronc/apprise#1603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Built in retries, escalations, priorities, and optional service calls in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1601\"\u003ecaronc/apprise#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSlack Template/Payload support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1604\"\u003ecaronc/apprise#1604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Slack workflows and trigger support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1605\"\u003ecaronc/apprise#1605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:rocket: Pushover E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1612\"\u003ecaronc/apprise#1612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWKD support added to email plugin in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1614\"\u003ecaronc/apprise#1614\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1618\"\u003ecaronc/apprise#1618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon SNS/SES Improvements in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1620\"\u003ecaronc/apprise#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNotifico Standalone Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1275\"\u003ecaronc/apprise#1275\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1593\"\u003ecaronc/apprise#1593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitter/X migration to API v2 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1607\"\u003ecaronc/apprise#1607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprovements to workflow:// based on recent slack:// changes in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1608\"\u003ecaronc/apprise#1608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:unlock: Added redirect= for allowing url redirection control in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1610\"\u003ecaronc/apprise#1610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emqtt:// now depends on paho-mqtt v2.1.0+ in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1613\"\u003ecaronc/apprise#1613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:skull: Retire msteams:// as it is no longer in service upstream in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1625\"\u003ecaronc/apprise#1625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.11.0 from PyPI\r\npip install apprise==1.11.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/158c4e1febc3e6093b0f357776b315a90c8a89b5\"\u003e\u003ccode\u003e158c4e1\u003c/code\u003e\u003c/a\u003e bumped version to v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/21db421ee89b24f1716a4fce74a4404a94bbabe7\"\u003e\u003ccode\u003e21db421\u003c/code\u003e\u003c/a\u003e GroupMe Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/f1e4ad2fd6659529597b1e07a1e44192faebff54\"\u003e\u003ccode\u003ef1e4ad2\u003c/code\u003e\u003c/a\u003e fixed mastodon error: AttributeError - 'list' object has no attribute 'union'...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e17fe9dd64dd79e373877cf8ee07595cc50a01cc\"\u003e\u003ccode\u003ee17fe9d\u003c/code\u003e\u003c/a\u003e Amazon Chime Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/dfdac59c9945385c4c75613e57d19558ec995d50\"\u003e\u003ccode\u003edfdac59\u003c/code\u003e\u003c/a\u003e HumHub Support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9de0397c30a7a2e58eb57c8da995ec54eada80bc\"\u003e\u003ccode\u003e9de0397\u003c/code\u003e\u003c/a\u003e Notifico Standalone Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/c3e67e61d35a1b0609d176786db1e0b2cc1287da\"\u003e\u003ccode\u003ec3e67e6\u003c/code\u003e\u003c/a\u003e Retired msteams:// - as it is no longer in service upstream (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1625\"\u003e#1625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/b463f23979455b61c548a550e40a3c75f0191b30\"\u003e\u003ccode\u003eb463f23\u003c/code\u003e\u003c/a\u003e TRACE logging during apprise init cleaned up (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1e2fdeb72bd8165ad613b162794778ff1c684e67\"\u003e\u003ccode\u003e1e2fdeb\u003c/code\u003e\u003c/a\u003e Amazon SNS/SES Improvements (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4706d0a4599a5072c8ae17375ee81862bcaac460\"\u003e\u003ccode\u003e4706d0a\u003c/code\u003e\u003c/a\u003e Handle XMPP SASL SCRAM-PLUS / Channel Binding (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1619\"\u003e#1619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.10.0...v1.11.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.4.0 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. {issue}\u003ccode\u003e3458\u003c/code\u003e {pr}\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. {issue}\u003ccode\u003e3277\u003c/code\u003e {pr}\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eEnum\u003c/code\u003e values used as \u003ccode\u003eChoice\u003c/code\u003e options produces a\nvalid completion result. {issue}\u003ccode\u003e3015\u003c/code\u003e {pr}\u003ccode\u003e3471\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. {issue}\u003ccode\u003e3487\u003c/code\u003e {pr}\u003ccode\u003e3493\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e {pr}\u003ccode\u003e3482\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eopen_url\u003c/code\u003e on Windows when the file path contains spaces.\n{issue}\u003ccode\u003e2994\u003c/code\u003e {pr}\u003ccode\u003e3478\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.15.0 to 4.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix fish completion for positional args and run fish tests in ci by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/823\"\u003eBrianPugh/cyclopts#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix zsh completion recursion when \u003ccode\u003eprog_name\u003c/code\u003e matches a builtin helper by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/825\"\u003eBrianPugh/cyclopts#825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd ubuntu-24.04-arm to the CI testing matrix by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/822\"\u003eBrianPugh/cyclopts#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing typer Option imports in flag negation examples by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.16.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn-value objects can now declare their own exit code by defining a \u003ccode\u003e__cyclopts_returncode__\u003c/code\u003e method, which is honored by all built-in \u003ccode\u003eresult_action\u003c/code\u003e handlers. Custom \u003ccode\u003eresult_action\u003c/code\u003e callables can opt in via the new \u003ccode\u003ecyclopts.resolve_returncode\u003c/code\u003e helper. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/818\"\u003eBrianPugh/cyclopts#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://peps.python.org/pep-0692/\"\u003ePEP 692\u003c/a\u003e support: when \u003ccode\u003e**kwargs\u003c/code\u003e is annotated as \u003ccode\u003eUnpack[SomeTypedDict]\u003c/code\u003e, the TypedDict's fields are promoted to top-level CLI options instead of the generic \u003ccode\u003e--[KEYWORD]\u003c/code\u003e catch-all. Per-field \u003ccode\u003eRequired\u003c/code\u003e / \u003ccode\u003eNotRequired\u003c/code\u003e markers are respected independently of the parent kwargs argument. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/819\"\u003eBrianPugh/cyclopts#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCycloptsError.msg\u003c/code\u003e now accepts a \u003ccode\u003erich.Text\u003c/code\u003e instance. Cyclopts' error-message style palette is exposed as \u003ccode\u003ecyclopts.exceptions.STYLE_OFFENDING_VALUE\u003c/code\u003e, \u003ccode\u003eSTYLE_NAME\u003c/code\u003e, \u003ccode\u003eSTYLE_VALID_CHOICE\u003c/code\u003e, \u003ccode\u003eSTYLE_SUGGESTION\u003c/code\u003e, and \u003ccode\u003eSTYLE_SOURCE\u003c/code\u003e . By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/814\"\u003eBrianPugh/cyclopts#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.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/BrianPugh/cyclopts/commit/ea77abc99ef67dc4da21548d3b2ff2150c265afe\"\u003e\u003ccode\u003eea77abc\u003c/code\u003e\u003c/a\u003e fix zsh completion recursion when prog_name matches a builtin helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/e297647b12b71155d01f87e8e1d5e008c90962b6\"\u003e\u003ccode\u003ee297647\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/824\"\u003e#824\u003c/a\u003e from SAY-5/docs-fix-typer-option-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/923a5648ed221c1f7683810851c4ade348149fa4\"\u003e\u003ccode\u003e923a564\u003c/code\u003e\u003c/a\u003e docs: add missing typer Option imports in flag negation examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ddb9cc2ec53ad103a4525e399afa92188ac81ae3\"\u003e\u003ccode\u003eddb9cc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/823\"\u003e#823\u003c/a\u003e from BrianPugh/fish-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bd56e32b839d9b90e060b1fd88105985194887db\"\u003e\u003ccode\u003ebd56e32\u003c/code\u003e\u003c/a\u003e fix fish completion for positional args and run fish tests in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/fba7293a546d7569f8cb74a85badc0a8f9401691\"\u003e\u003ccode\u003efba7293\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/822\"\u003e#822\u003c/a\u003e from BrianPugh/arm-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/17e22f16883a7132b9d9bc12dc18c16b726d8a73\"\u003e\u003ccode\u003e17e22f1\u003c/code\u003e\u003c/a\u003e skip global zsh rcs in completion tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4cc78acd473f09d1e6267ed92f3ca24358c4b8cd\"\u003e\u003ccode\u003e4cc78ac\u003c/code\u003e\u003c/a\u003e install zsh in linux ci runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5c87c2752b494e9486f422d48473d206cd6ab66e\"\u003e\u003ccode\u003e5c87c27\u003c/code\u003e\u003c/a\u003e add ubuntu-24.04-arm to the CI testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/be2b4295f4632315ae1e49c8f3799bc71086a751\"\u003e\u003ccode\u003ebe2b429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/819\"\u003e#819\u003c/a\u003e from BrianPugh/pep-692\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\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.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build 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/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\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.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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 docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\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 translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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 translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\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 translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\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 translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.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.47.0 to 0.49.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.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 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/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) 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/2971\"\u003eKludex/uvicorn#2971\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.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/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.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.20.3 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.21.1 - Eight misbehavin'\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eredis-py==8.0.0\u003c/code\u003e changed a default timeout that broke long-lived blocking connections (like pubsub and streams).  With this release, that's fixed and we support (and have tests for) redis-py 5.x, 6.x, 7.x, and 8.x\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport redis-py 8, and make CI actually exercise it by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/427\"\u003echrisguidry/docket#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.21.0 - Don't Call Me\u003c/h2\u003e\n\u003cp\u003eThis is a performance-tuning release focused on reducing how chatty Docket is with Redis, and folding several separate operations into single pipelines and scripts.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump idna from 3.11 to 3.15 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/chrisguidry/docket/pull/418\"\u003echrisguidry/docket#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pymdown-extensions from 10.21.2 to 10.21.3 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/chrisguidry/docket/pull/417\"\u003echrisguidry/docket#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all-dependencies group across 1 directory with 14 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/chrisguidry/docket/pull/416\"\u003echrisguidry/docket#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache Lua scripts at module scope to skip per-call SHA work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/419\"\u003echrisguidry/docket#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold state PUBLISH into the per-task Lua scripts by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/420\"\u003echrisguidry/docket#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold the rest of the task-completion path into _terminal by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/421\"\u003echrisguidry/docket#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePost-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/422\"\u003echrisguidry/docket#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock in regression coverage for implicit invariants in the recent Lua refactor by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/423\"\u003echrisguidry/docket#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.3...0.21.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/chrisguidry/docket/commit/cfafd7e3d8b4dd20d237b237c2b4ce78dc69ad5b\"\u003e\u003ccode\u003ecfafd7e\u003c/code\u003e\u003c/a\u003e Support redis-py 8, and make CI actually exercise it (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/11ebbcd7731441c0460b00d41bdbaeb5072069bb\"\u003e\u003ccode\u003e11ebbcd\u003c/code\u003e\u003c/a\u003e Lock in regression coverage for implicit invariants in the recent Lua refacto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/bf1fa2afc122968b6a0845e7b7edc5f112c0a79d\"\u003e\u003ccode\u003ebf1fa2a\u003c/code\u003e\u003c/a\u003e Post-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/b82ef829c704d4a102b3e2b11fabf69d118e3673\"\u003e\u003ccode\u003eb82ef82\u003c/code\u003e\u003c/a\u003e Fold the rest of the task-completion path into _terminal (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/1cdb6dfffe8791684f3b0abe94751a54aaa8dc63\"\u003e\u003ccode\u003e1cdb6df\u003c/code\u003e\u003c/a\u003e Fold state PUBLISH into the per-task Lua scripts (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/e95be4a45bdf87cd4c67c9c9a5fd5db83d4c8136\"\u003e\u003ccode\u003ee95be4a\u003c/code\u003e\u003c/a\u003e Cache Lua scripts at module scope to skip per-call SHA work (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/718df97071c73b84ce9b6afcd49e51b75fcbe69f\"\u003e\u003ccode\u003e718df97\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group across 1 directory with 14 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ea4077df41e2e2451f7767ced4db0aaef1c2d5c2\"\u003e\u003ccode\u003eea4077d\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions from 10.21.2 to 10.21.3 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/6d015281dee243fcbc9e359fdd204b0926704b02\"\u003e\u003ccode\u003e6d01528\u003c/code\u003e\u003c/a\u003e Bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/releases\"\u003eopentelemetry-instrumentation's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.4b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate experimental path from deprecated \u003ccode\u003eLLMInvocation\u003c/code\u003e to \u003ccode\u003eInferenceInvocation\u003c/code\u003e, using \u003ccode\u003ehandler.start_inference()\u003c/code\u003e and \u003ccode\u003einvocation.stop()\u003c/code\u003e/\u003ccode\u003einvocation.fail()\u003c/code\u003e directly (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4502\"\u003e#4502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ecreate_duration_histogram\u003c/code\u003e and \u003ccode\u003ecreate_token_histogram\u003c/code\u003e from \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e instead of defining bucket boundaries locally (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4501\"\u003e#4501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImport \u003ccode\u003eOTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT\u003c/code\u003e from \u003ccode\u003eopentelemetry.util.genai.environment_variables\u003c/code\u003e instead of re-defining it locally, making \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e the single source of truth for this constant. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4455\"\u003e#4455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with wrapt 2.x by using positional arguments in \u003ccode\u003ewrap_function_wrapper()\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4445\"\u003e#4445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eChoiceBuffer\u003c/code\u003e crash on streaming tool-call deltas with \u003ccode\u003earguments=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4350\"\u003e#4350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eStreamWrapper\u003c/code\u003e missing \u003ccode\u003e.headers\u003c/code\u003e and other attributes when using \u003ccode\u003ewith_raw_response\u003c/code\u003e streaming (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/issues/4113\"\u003e#4113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd opt-in support for latest experimental semantic conventions (v1.37.0). Set \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e to \u003ccode\u003egen_ai_latest_experimental\u003c/code\u003e to enable. Add dependency on \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e pypi package. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3715\"\u003e#3715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd wrappers for OpenAI Responses API streams and response stream managers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4280\"\u003e#4280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd async wrappers for OpenAI Responses API streams and response stream managers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4325\"\u003e#4325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd strongly typed Responses API extractors with validation and content extraction improvements (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4337\"\u003e#4337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd completion hook support. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eresponse_format\u003c/code\u003e handling: map \u003ccode\u003ejson_object\u003c/code\u003e/\u003ccode\u003ejson_schema\u003c/code\u003e to \u003ccode\u003ejson\u003c/code\u003e output type. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip attribute values with \u003ccode\u003eopenai.Omit\u003c/code\u003e value. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault empty string for \u003ccode\u003egen_ai.request.model\u003c/code\u003e attribute on missing model. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4494\"\u003e#4494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.3b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when handling \u003ccode\u003eLegacyAPIResponse\u003c/code\u003e (from \u003ccode\u003ewith_raw_response\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for chat completions choice count and stop sequences span attributes (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4028\"\u003e#4028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash with streaming \u003ccode\u003ewith_raw_response\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4033\"\u003e#4033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump to 1.30.0 semconv schema: \u003ccode\u003egen_ai.request.seed\u003c/code\u003e instead of \u003ccode\u003egen_ai.openai.request.seed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4036\"\u003e#4036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.2b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix service tier attribute names: use \u003ccode\u003eGEN_AI_OPENAI_REQUEST_SERVICE_TIER\u003c/code\u003e for request attributes and \u003ccode\u003eGEN_AI_OPENAI_RESPONSE_SERVICE_TIER\u003c/code\u003e for response attributes. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for OpenAI embeddings instrumentation (\u003ca href=\"https://redirect.githu...\n\n_Description has been truncated_","html_url":"https://github.com/beaconchain-horizon/prefect/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/beaconchain-horizon%2Fprefect/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"4585885997","node_id":"PR_kwDORfOU_c7ih_JF","number":232,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T04:40:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-04T04:47:49.000Z","updated_at":"2026-06-11T04:40:12.000Z","time_to_close":604341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":18,"packages":[{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.24.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 18 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [python-json-logger](https://github.com/nhairs/python-json-logger) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.24.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.24.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/43...\n\n_Description has been truncated_","html_url":"https://github.com/jlawton-cribl/opentelemetry-demo/pull/232","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlawton-cribl%2Fopentelemetry-demo/issues/232","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/232/packages"},{"uuid":"4585093569","node_id":"PR_kwDOQpxn1c7ifX4B","number":266,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T13:00:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-04T01:52:29.000Z","updated_at":"2026-06-11T13:01:01.000Z","time_to_close":644910,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.71.0","new_version":"1.81.0"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.2.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.7.2","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.7.2` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger), [flask](https://github.com/pallets/flask) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.7.2` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.71.0 to 1.81.0\n\nUpdates `openfeature-hooks-opentelemetry` from 0.2.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.2.0...openfeature-hooks-opentelemetry/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate opentelemetry hook to latest version of semantic conventions (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/326\"\u003e#326\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emigrate to uv (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/293\"\u003e#293\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/9590554be4c8a7f77b0c0f20d6b48076c9870f52\"\u003e9590554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate opentelemetry hook to latest version of semantic conventions (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/326\"\u003e#326\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a2ec682a709a4721f8362cfa6a9e6037937761ee\"\u003ea2ec682\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.2.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.59b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.38.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.7.2 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.7.2...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binar...\n\n_Description has been truncated_","html_url":"https://github.com/yash-dagknows/e-com-app/pull/266","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yash-dagknows%2Fe-com-app/issues/266","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/266/packages"}],"issue_packages":[{"old_version":"1.42.1","new_version":"1.43.0","update_type":"minor","path":null,"pr_created_at":"2026-07-03T06:23:12.000Z","version_change":"1.42.1 → 1.43.0","issue":{"uuid":"4800923743","node_id":"PR_kwDODQttd87tdD3e","number":2416,"state":"open","title":"chore(deps): bump the python-packages group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":10,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-03T06:23:12.000Z","updated_at":"2026-07-17T06:37:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":24,"packages":[{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"bcrypt","old_version":"4.3.0","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"datadog","old_version":"0.52.1","new_version":"0.52.2","repository_url":"https://github.com/DataDog/datadogpy"},{"name":"disposable-email-domains","old_version":"0.0.204","new_version":"0.0.209","repository_url":"https://github.com/disposable-email-domains/disposable-email-domains"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"nh3","old_version":"0.3.5","new_version":"0.3.6","repository_url":"https://github.com/messense/nh3"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.14.2","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"stripe","old_version":"11.6.0","new_version":"15.3.0","repository_url":"https://github.com/stripe/stripe-python"},{"name":"wrapt","old_version":"2.2.1","new_version":"2.2.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yara-x","old_version":"1.18.0","new_version":"1.19.0","repository_url":"https://github.com/VirusTotal/yara-x"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pymdown-extensions","old_version":"10.21.3","new_version":"11.0","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"mkdocs-rss-plugin","old_version":"1.17.9","new_version":"1.19.0","repository_url":"https://github.com/guts/mkdocs-rss-plugin"},{"name":"ast-grep-cli","old_version":"0.42.3","new_version":"0.44.0","repository_url":"https://github.com/ast-grep/ast-grep"},{"name":"cssbeautifier","old_version":"1.15.4","new_version":"2.0.1","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"djlint","old_version":"1.39.2","new_version":"1.39.4","repository_url":"https://github.com/djlint/djLint"},{"name":"jsbeautifier","old_version":"1.15.4","new_version":"2.0.1","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.14.0","new_version":"0.15.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"ruff","old_version":"0.15.17","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tombi","old_version":"1.1.3","new_version":"1.1.5","repository_url":"https://github.com/tombi-toml/tombi"},{"name":"coverage","old_version":"7.14.1","new_version":"7.14.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.3.0` | `5.0.0` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [datadog](https://github.com/DataDog/datadogpy) | `0.52.1` | `0.52.2` |\n| [disposable-email-domains](https://github.com/disposable-email-domains/disposable-email-domains) | `0.0.204` | `0.0.209` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [nh3](https://github.com/messense/nh3) | `0.3.5` | `0.3.6` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.14.2` |\n| [stripe](https://github.com/stripe/stripe-python) | `11.6.0` | `15.3.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.2.1` | `2.2.2` |\n| [yara-x](https://github.com/VirusTotal/yara-x) | `1.18.0` | `1.19.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21.3` | `11.0` |\n| [mkdocs-rss-plugin](https://github.com/guts/mkdocs-rss-plugin) | `1.17.9` | `1.19.0` |\n| [ast-grep-cli](https://github.com/ast-grep/ast-grep) | `0.42.3` | `0.44.0` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.4` | `2.0.1` |\n| [djlint](https://github.com/djlint/djLint) | `1.39.2` | `1.39.4` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.4` | `2.0.1` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.14.0` | `0.15.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.17` | `0.15.20` |\n| [tombi](https://github.com/tombi-toml/tombi) | `1.1.3` | `1.1.5` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.14.1` | `7.14.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.1.0` | `9.1.1` |\n\n\nUpdates `alembic` from 1.18.4 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 4.3.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBumped MSRV to 1.74.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 and free-threaded Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdded support for Windows on ARM.\u003c/li\u003e\n\u003cli\u003ePassing \u003ccode\u003ehashpw\u003c/code\u003e a password longer than 72 bytes now raises a\n\u003ccode\u003eValueError\u003c/code\u003e. Previously the password was silently truncated, following the\nbehavior of the original OpenBSD \u003ccode\u003ebcrypt\u003c/code\u003e implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/5060bce7e6c27f55e89d5b0d22b7ae0437a362f7\"\u003e\u003ccode\u003e5060bce\u003c/code\u003e\u003c/a\u003e 5.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e43f568265df7e1aabbaddccc336dbf3ea675df8\"\u003e\u003ccode\u003ee43f568\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.4 to 4.3.0 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1077\"\u003e#1077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/fc9f680a96a0d8e9df4c5a1a4d991fd961a90adb\"\u003e\u003ccode\u003efc9f680\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.175 to 0.2.176 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/633f46fbb33d8abfe5b9cb0c12eed79878fbff06\"\u003e\u003ccode\u003e633f46f\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/a2fefbbcff8d46cfd00efa8d2c13956b388d6bec\"\u003e\u003ccode\u003ea2fefbb\u003c/code\u003e\u003c/a\u003e Remove pypy310 builds (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/f60707e18f3f9728f2c6f4ce97fb8fc90721c7d3\"\u003e\u003ccode\u003ef60707e\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.5+wasi-0.2.4 to 0.14.7+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/c790eed8fa205403e1ea0587cf9178e866c940f3\"\u003e\u003ccode\u003ec790eed\u003c/code\u003e\u003c/a\u003e Bump unicode-ident from 1.0.18 to 1.0.19 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/122cbdc6895fd70c044a2f4ad7845c2a56b93096\"\u003e\u003ccode\u003e122cbdc\u003c/code\u003e\u003c/a\u003e Bump target-lexicon from 0.13.2 to 0.13.3 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/2bd208d6c5cadba2f983280ec21cc8cf977904d0\"\u003e\u003ccode\u003e2bd208d\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.4+wasi-0.2.4 to 0.14.5+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e1aa9e883090e0267bd7b38964fe852f70a99b88\"\u003e\u003ccode\u003ee1aa9e8\u003c/code\u003e\u003c/a\u003e remove poinless cargo cache paths from CI (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1067\"\u003e#1067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/bcrypt/compare/4.3.0...5.0.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.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-06-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. {pr}\u003ccode\u003e3578\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. {issue}\u003ccode\u003e2331\u003c/code\u003e {issue}\u003ccode\u003e1884\u003c/code\u003e {issue}\u003ccode\u003e3125\u003c/code\u003e {pr}\u003ccode\u003e3582\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datadog` from 0.52.1 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/DataDog/datadogpy/releases\"\u003edatadog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.52.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/DataDog/datadogpy/blob/master/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/DataDog/datadogpy/blob/master/CHANGELOG.md\"\u003edatadog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.52.2 / 2026-06-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fixed] Fix dogshell to accept app keys with underscore prefixes. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/931\"\u003e#931\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Push cardinality for sampled metrics. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/929\"\u003e#929\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Compute rate under lock. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/928\"\u003e#928\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Report the right number of dropped bytes. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/927\"\u003e#927\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Pass missing parameter in \u003ccode\u003eMaxSampleMetricContexts\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/916\"\u003e#916\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Restore \u003ccode\u003e--pretty\u003c/code\u003e/\u003ccode\u003e--raw\u003c/code\u003e support in dogshell. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/917\"\u003e#917\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Fixed] Fix SLO update via dogshell. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/889\"\u003e#889\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Changed] Cache constant tags for performance. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/915\"\u003e#915\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e[Added] Add typing for \u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003eutil\u003c/code\u003e, \u003ccode\u003edogstatsd\u003c/code\u003e, and \u003ccode\u003edogshell\u003c/code\u003e modules. See \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/920\"\u003e#920\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/922\"\u003e#922\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/921\"\u003e#921\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/919\"\u003e#919\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/DataDog/datadogpy/pull/918\"\u003e#918\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/DataDog/datadogpy/commit/c3f4cd23dd33196dc95d2e4b16c5db33c5d3e635\"\u003e\u003ccode\u003ec3f4cd2\u003c/code\u003e\u003c/a\u003e Update gh-action-pypi-publish to v1.14.0 (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/958\"\u003e#958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/d16aac747251be6ba1026fc004e3e8bacb9a11f6\"\u003e\u003ccode\u003ed16aac7\u003c/code\u003e\u003c/a\u003e ci: remove setup-python action blocked by enterprise policy (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/957\"\u003e#957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/b3566345a1055654eb907354e1f5644cd38c277e\"\u003e\u003ccode\u003eb356634\u003c/code\u003e\u003c/a\u003e Release 0.52.2 (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/e98eab7254d5c3662d890c6947c97bf26e13cd20\"\u003e\u003ccode\u003ee98eab7\u003c/code\u003e\u003c/a\u003e chore(dogstatsd): improvements (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/704e6c2a0a4c05f79e3225b14e04c16805e3d24a\"\u003e\u003ccode\u003e704e6c2\u003c/code\u003e\u003c/a\u003e ci: add dependabot configuration for pip and github-actions (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/938\"\u003e#938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/910b7d33a15553b3a72e0da4d331569d0584dc2d\"\u003e\u003ccode\u003e910b7d3\u003c/code\u003e\u003c/a\u003e performance: ruff-based improvements (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/925\"\u003e#925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/687143fa9f6a179702a5c417835d4beb7c30cd2f\"\u003e\u003ccode\u003e687143f\u003c/code\u003e\u003c/a\u003e typing: add typing for \u003ccode\u003eapi\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/6277a5993eaba9c2739815dbb39ecab22eeddfbc\"\u003e\u003ccode\u003e6277a59\u003c/code\u003e\u003c/a\u003e typing: add typing for \u003ccode\u003eutil\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/158bb01f7054debdf48f18a89f828bf0b446e4a3\"\u003e\u003ccode\u003e158bb01\u003c/code\u003e\u003c/a\u003e refactor: cache constant tags (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DataDog/datadogpy/commit/91c8691b5f7eac0941110b032981d8c10dd9801b\"\u003e\u003ccode\u003e91c8691\u003c/code\u003e\u003c/a\u003e ci: run tests for legacy Python versions (\u003ca href=\"https://redirect.github.com/DataDog/datadogpy/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/DataDog/datadogpy/compare/v0.52.1...v0.52.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `disposable-email-domains` from 0.0.204 to 0.0.209\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/disposable-email-domains/disposable-email-domains/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.5 to 0.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate clean_content_tags conflict with tags by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/125\"\u003emessense/nh3#125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument tag_attribute_values as alternate to attributes by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/126\"\u003emessense/nh3#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nh3.escape alias for clean_text by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/127\"\u003emessense/nh3#127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.28.3 to 0.29.0 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/messense/nh3/pull/130\"\u003emessense/nh3#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose ammonia's url_relative policy via url_relative kwarg by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/131\"\u003emessense/nh3#131\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.5...v0.3.6\"\u003ehttps://github.com/messense/nh3/compare/v0.3.5...v0.3.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/bea70dfcdd0b9e246f884416dec9c73f9e8923cf\"\u003e\u003ccode\u003ebea70df\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/788cee289054b95930034eeaedb3424548302456\"\u003e\u003ccode\u003e788cee2\u003c/code\u003e\u003c/a\u003e Expose ammonia's url_relative policy via url_relative kwarg (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/131\"\u003e#131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/e76a81acc58a98a55992ece96740a1e5a448e222\"\u003e\u003ccode\u003ee76a81a\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.3 to 0.29.0 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/8ec45a31335b0df9664d22749067fe41a3e369bc\"\u003e\u003ccode\u003e8ec45a3\u003c/code\u003e\u003c/a\u003e Add nh3.escape alias for clean_text (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/a1e022621e862cf27b929b645cb264d2bf8376df\"\u003e\u003ccode\u003ea1e0226\u003c/code\u003e\u003c/a\u003e Document tag_attribute_values as alternate to attributes (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/389fb797d5203dab4d0691863bd56ff18136a433\"\u003e\u003ccode\u003e389fb79\u003c/code\u003e\u003c/a\u003e Validate clean_content_tags conflict with tags (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/125\"\u003e#125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/61aad5aaf6c719299b3319e2632c7e96500b0fe6\"\u003e\u003ccode\u003e61aad5a\u003c/code\u003e\u003c/a\u003e Bump uraimo/run-on-arch-action in the github-actions group (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/124\"\u003e#124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.5...v0.3.6\"\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.14.1 to 2.14.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis is a security patch release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent \u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e from following symlinks outside \u003ccode\u003esecrets_dir\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/889\"\u003epydantic/pydantic-settings#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.2 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/890\"\u003epydantic/pydantic-settings#890\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eFixes \u003ca href=\"https://github.com/pydantic/pydantic-settings/security/advisories/GHSA-4xgf-cpjx-pc3j\"\u003eGHSA-4xgf-cpjx-pc3j\u003c/a\u003e: \u003ccode\u003eNestedSecretsSettingsSource\u003c/code\u003e with \u003ccode\u003esecrets_nested_subdir=True\u003c/code\u003e could follow a symbolic link inside \u003ccode\u003esecrets_dir\u003c/code\u003e pointing outside it, reading out-of-tree files into settings values and bypassing the \u003ccode\u003esecrets_dir_max_size\u003c/code\u003e cap. Affected versions: \u003ccode\u003e\u0026gt;= 2.12.0, \u0026lt; 2.14.2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\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/d703bd717e5e07439fa89da2245eee6139413e9e\"\u003e\u003ccode\u003ed703bd7\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.2 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stripe` from 11.6.0 to 15.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stripe/stripe-python/releases\"\u003estripe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.3.0\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-06-24.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1836\"\u003e#1836\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003erelease_details\u003c/code\u003e on \u003ccode\u003eReserve.Hold\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003etax_fund\u003c/code\u003e on enum \u003ccode\u003eBalanceTransaction.type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eBilling.CreditGrant.priority\u003c/code\u003e to be required\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebuyer_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Blik\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Blik\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Bizum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003etransaction_link_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.network\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003eusdsui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003efingerprint\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Pix\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Pix\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Pix\u003c/code\u003e, and \u003ccode\u003eSetupAttempt.PaymentMethodDetail.Pix\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntent.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOption\u003c/code\u003e, and \u003ccode\u003echeckout.SessionCreateParamsPaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebilling_cycle_anchor_config\u003c/code\u003e on \u003ccode\u003echeckout.SessionCreateParamsSubscriptionDatum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ewechat_pay\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emastercard_compliance\u003c/code\u003e on \u003ccode\u003eDispute.Evidence.EnhancedEvidence\u003c/code\u003e, \u003ccode\u003eDispute.EvidenceDetail.EnhancedEligibility\u003c/code\u003e, and \u003ccode\u003eDisputeModifyParamsEvidenceEnhancedEvidence\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard_compliance\u003c/code\u003e on enum \u003ccode\u003eDispute.enhanced_eligibility_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003estatus_details\u003c/code\u003e on \u003ccode\u003eFinancialConnections.Account\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003evalidated\u003c/code\u003e on enum \u003ccode\u003eIdentity.VerificationSession.Redaction.status\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoiceCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eInvoiceModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoice.PaymentSetting.payment_method_types\u003c/code\u003e and \u003ccode\u003eSubscription.PaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003estored_credential_usage\u003c/code\u003e on \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.description\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.description\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esetup_future_usage\u003c/code\u003e on \u003ccode\u003ePaymentIntent.PaymentMethodOption.Satispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOptionSatispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOptionSatispay\u003c/code\u003e, and \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOptionSatispay\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003ePaymentRecordReportRefundParams.refunded\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esatispay\u003c/code\u003e on \u003ccode\u003eSetupAttempt.PaymentMethodDetail\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecustom_fields\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, and \u003ccode\u003efooter\u003c/code\u003e on \u003ccode\u003eSubscription.InvoiceSetting\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsInvoiceSetting\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsInvoiceSetting\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epayment_method_options\u003c/code\u003e and \u003ccode\u003epayment_method\u003c/code\u003e on \u003ccode\u003eTopupCreateParams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003e2026-06-24.dahlia\u003c/code\u003e on enum \u003ccode\u003eWebhookEndpointCreateParams.api_version\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emode\u003c/code\u003e on \u003ccode\u003eV2.Commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003eV2.Commerce.ProductCatalogImport.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit_payments\u003c/code\u003e on \u003ccode\u003eV2.Core.Account.Configuration.Merchant.Capability\u003c/code\u003e, \u003ccode\u003ev2.core.AccountCreateParamsConfigurationMerchantCapability\u003c/code\u003e, and \u003ccode\u003ev2.core.AccountModifyParamsConfigurationMerchantCapability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecrypto_money_manager\u003c/code\u003e and \u003ccode\u003emoney_manager\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003ecrypto_storer\u003c/code\u003e and \u003ccode\u003estorer\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003ev2.commerce.ProductCatalogImportCreateParams.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esunbit_payments\u003c/code\u003e on enum \u003ccode\u003eEventsV2CoreAccountIncludingConfigurationMerchantCapabilityStatusUpdatedEvent.updated_capability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for error codes \u003ccode\u003eanomalous_money_movement_request\u003c/code\u003e, \u003ccode\u003efailed_tax_calculation\u003c/code\u003e, \u003ccode\u003efinancial_account_balance_does_not_support_currency\u003c/code\u003e, \u003ccode\u003efinancial_account_capability_not_enabled\u003c/code\u003e, and \u003ccode\u003efinancial_account_capability_restricted\u003c/code\u003e on \u003ccode\u003eInvoice.LastFinalizationError\u003c/code\u003e, \u003ccode\u003ePaymentIntent.LastPaymentError\u003c/code\u003e, \u003ccode\u003eSetupAttempt.SetupError\u003c/code\u003e, \u003ccode\u003eSetupIntent.LastSetupError\u003c/code\u003e, \u003ccode\u003eStripeError\u003c/code\u003e, and \u003ccode\u003eTerminal.Reader.Action.ApiError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/stripe/stripe-python/blob/v15.3.0/CHANGELOG.md\"\u003ethe changelog for more details\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev15.3.0b1\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-05-27.private.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1801\"\u003e#1801\u003c/a\u003e Update generated code for beta\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epause\u003c/code\u003e method on resource \u003ccode\u003eSubscription\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eretrieve\u003c/code\u003e method on resource \u003ccode\u003ev2.iam.ActivityLog\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard\u003c/code\u003e on enum \u003ccode\u003eIssuing.Settlement.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change type of \u003ccode\u003eProductCatalog.TrialOffer.EndBehavior.Transition.price\u003c/code\u003e from \u003ccode\u003estring\u003c/code\u003e to \u003ccode\u003eexpandable($Price)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stripe/stripe-python/blob/master/CHANGELOG.md\"\u003estripe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.3.0 - 2026-06-24\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-06-24.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1836\"\u003e#1836\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003erelease_details\u003c/code\u003e on \u003ccode\u003eReserve.Hold\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003etax_fund\u003c/code\u003e on enum \u003ccode\u003eBalanceTransaction.type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eBilling.CreditGrant.priority\u003c/code\u003e to be required\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebuyer_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Bizum\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Blik\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Bizum\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Blik\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Bizum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003etransaction_link_id\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.network\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.network\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003eusdsui\u003c/code\u003e on enums \u003ccode\u003eCharge.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e, and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Crypto.token_currency\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003efingerprint\u003c/code\u003e on \u003ccode\u003eCharge.PaymentMethodDetail.Pix\u003c/code\u003e, \u003ccode\u003eConfirmationToken.PaymentMethodPreview.Pix\u003c/code\u003e, \u003ccode\u003ePaymentMethod.Pix\u003c/code\u003e, and \u003ccode\u003eSetupAttempt.PaymentMethodDetail.Pix\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntent.PaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOption\u003c/code\u003e, \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOption\u003c/code\u003e, and \u003ccode\u003echeckout.SessionCreateParamsPaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebilling_cycle_anchor_config\u003c/code\u003e on \u003ccode\u003echeckout.SessionCreateParamsSubscriptionDatum\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ewechat_pay\u003c/code\u003e on \u003ccode\u003eCheckout.Session.PaymentMethodOption\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emastercard_compliance\u003c/code\u003e on \u003ccode\u003eDispute.Evidence.EnhancedEvidence\u003c/code\u003e, \u003ccode\u003eDispute.EvidenceDetail.EnhancedEligibility\u003c/code\u003e, and \u003ccode\u003eDisputeModifyParamsEvidenceEnhancedEvidence\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003emastercard_compliance\u003c/code\u003e on enum \u003ccode\u003eDispute.enhanced_eligibility_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003estatus_details\u003c/code\u003e on \u003ccode\u003eFinancialConnections.Account\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003evalidated\u003c/code\u003e on enum \u003ccode\u003eIdentity.VerificationSession.Redaction.status\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoiceCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eInvoiceModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsPaymentSetting.payment_method_types\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsPaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esatispay\u003c/code\u003e on enums \u003ccode\u003eInvoice.PaymentSetting.payment_method_types\u003c/code\u003e and \u003ccode\u003eSubscription.PaymentSetting.payment_method_types\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003estored_credential_usage\u003c/code\u003e on \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.description\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.description\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.iin\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003e⚠️ Change \u003ccode\u003ePaymentAttemptRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e and \u003ccode\u003ePaymentRecord.PaymentMethodDetail.Card.issuer\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esetup_future_usage\u003c/code\u003e on \u003ccode\u003ePaymentIntent.PaymentMethodOption.Satispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentConfirmParamsPaymentMethodOptionSatispay\u003c/code\u003e, \u003ccode\u003ePaymentIntentCreateParamsPaymentMethodOptionSatispay\u003c/code\u003e, and \u003ccode\u003ePaymentIntentModifyParamsPaymentMethodOptionSatispay\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003ePaymentRecordReportRefundParams.refunded\u003c/code\u003e to be optional\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esatispay\u003c/code\u003e on \u003ccode\u003eSetupAttempt.PaymentMethodDetail\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecustom_fields\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, and \u003ccode\u003efooter\u003c/code\u003e on \u003ccode\u003eSubscription.InvoiceSetting\u003c/code\u003e, \u003ccode\u003eSubscriptionCreateParamsInvoiceSetting\u003c/code\u003e, and \u003ccode\u003eSubscriptionModifyParamsInvoiceSetting\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epayment_method_options\u003c/code\u003e and \u003ccode\u003epayment_method\u003c/code\u003e on \u003ccode\u003eTopupCreateParams\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003e2026-06-24.dahlia\u003c/code\u003e on enum \u003ccode\u003eWebhookEndpointCreateParams.api_version\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003emode\u003c/code\u003e on \u003ccode\u003eV2.Commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003eV2.Commerce.ProductCatalogImport.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003esunbit_payments\u003c/code\u003e on \u003ccode\u003eV2.Core.Account.Configuration.Merchant.Capability\u003c/code\u003e, \u003ccode\u003ev2.core.AccountCreateParamsConfigurationMerchantCapability\u003c/code\u003e, and \u003ccode\u003ev2.core.AccountModifyParamsConfigurationMerchantCapability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecrypto_money_manager\u003c/code\u003e and \u003ccode\u003emoney_manager\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Remove support for \u003ccode\u003ecrypto_storer\u003c/code\u003e and \u003ccode\u003estorer\u003c/code\u003e on \u003ccode\u003ev2.core.AccountModifyParamsIdentityAttestationTermsOfService\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new value \u003ccode\u003epromotion\u003c/code\u003e on enum \u003ccode\u003ev2.commerce.ProductCatalogImportCreateParams.feed_type\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e⚠️ Add support for new value \u003ccode\u003esunbit_payments\u003c/code\u003e on enum \u003ccode\u003eEventsV2CoreAccountIncludingConfigurationMerchantCapabilityStatusUpdatedEvent.updated_capability\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for error codes \u003ccode\u003eanomalous_money_movement_request\u003c/code\u003e, \u003ccode\u003efailed_tax_calculation\u003c/code\u003e, \u003ccode\u003efinancial_account_balance_does_not_support_currency\u003c/code\u003e, \u003ccode\u003efinancial_account_capability_not_enabled\u003c/code\u003e, and \u003ccode\u003efinancial_account_capability_restricted\u003c/code\u003e on \u003ccode\u003eInvoice.LastFinalizationError\u003c/code\u003e, \u003ccode\u003ePaymentIntent.LastPaymentError\u003c/code\u003e, \u003ccode\u003eSetupAttempt.SetupError\u003c/code\u003e, \u003ccode\u003eSetupIntent.LastSetupError\u003c/code\u003e, \u003ccode\u003eStripeError\u003c/code\u003e, and \u003ccode\u003eTerminal.Reader.Action.ApiError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.2.1 - 2026-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1825\"\u003e#1825\u003c/a\u003e Add \u0026quot;source\u0026quot; field to user-agent header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.2.0 - 2026-05-27\u003c/h2\u003e\n\u003cp\u003eThis release changes the pinned API version to 2026-05-27.dahlia.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/stripe/stripe-python/pull/1816\"\u003e#1816\u003c/a\u003e Update generated code\n\u003cul\u003e\n\u003cli\u003eAdd support for new resource \u003ccode\u003ev2.commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ecreate\u003c/code\u003e and \u003ccode\u003eretrieve\u003c/code\u003e methods on resource \u003ccode\u003ev2.commerce.ProductCatalogImport\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ebizum_payments\u003c/code\u003e and \u003ccode\u003escalapay_payments\u003c/code\u003e on \u003ccode\u003eAccount.Capability\u003c/code\u003e, \u003ccode\u003eAccountCreateParamsCapability\u003c/code\u003e, and \u003ccode\u003eAccountModifyParamsCapability\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/4454934a9bd1d957e50d6f9b4d6c11cb827348db\"\u003e\u003ccode\u003e4454934\u003c/code\u003e\u003c/a\u003e Bump version to 15.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/fa25f2471e981e7f6ba633267a0e4abc81586766\"\u003e\u003ccode\u003efa25f24\u003c/code\u003e\u003c/a\u003e Update generated code (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1836\"\u003e#1836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/4280756589793409d9431e36b69524d5b393968d\"\u003e\u003ccode\u003e4280756\u003c/code\u003e\u003c/a\u003e Add PR disclaimer to README (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1831\"\u003e#1831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/3f0f83494bb4c8db3436e5bdbe045c16cdf7bca4\"\u003e\u003ccode\u003e3f0f834\u003c/code\u003e\u003c/a\u003e Upgrade CI runner from ubuntu-22.04 to ubuntu-24.04 (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1830\"\u003e#1830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/a8fcb6913bd4abbe777a1944a126bdf5da36ec87\"\u003e\u003ccode\u003ea8fcb69\u003c/code\u003e\u003c/a\u003e Remove retired manual API tests covered by generated examples (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/1eab0455197eb5d86f858120d062c3984a429b96\"\u003e\u003ccode\u003e1eab045\u003c/code\u003e\u003c/a\u003e Bump version to 15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/36e43ba1d8304d25eba0623367ace415224c5b30\"\u003e\u003ccode\u003e36e43ba\u003c/code\u003e\u003c/a\u003e docs: clarify private preview SDK access in README (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1826\"\u003e#1826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/a5536454ca270b0a0857c65f2cb9d0b636ce8bba\"\u003e\u003ccode\u003ea553645\u003c/code\u003e\u003c/a\u003e Add source field to user-agent header (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/42db177ce3777b27135554cd09a4d59256a84d3b\"\u003e\u003ccode\u003e42db177\u003c/code\u003e\u003c/a\u003e Add Changelog section to PR template (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1823\"\u003e#1823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stripe/stripe-python/commit/2d39c3bc3ed3bcc07c1eb5516458ce63096d9984\"\u003e\u003ccode\u003e2d39c3b\u003c/code\u003e\u003c/a\u003e Disable trim_trailing_whitespace for CHANGELOG.md (\u003ca href=\"https://redirect.github.com/stripe/stripe-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stripe/stripe-python/compare/v11.6.0...v15.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wrapt` from 2.2.1 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt 2.2.2\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\nbuilds). The source distribution is also attached together\nwith \u003ccode\u003eSHA256SUMS\u003c/code\u003e for verification.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.2rc3\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.2 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2rc3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.2rc3.tar.gz\ncd wrapt-2.2.2rc3\npip install .\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003eSHA256SUMS\u003c/code\u003e is attached for verification of the archives.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.2rc2\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.2 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.2rc2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.2rc2.tar.gz\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003e@wrapt.lru_cache\u003c/code\u003e was applied to an instance method that was\noverridden in a subclass, and the subclass method called the base class\nmethod via \u003ccode\u003esuper()\u003c/code\u003e, a \u003ccode\u003eRecursionError\u003c/code\u003e was raised instead of the\nbase class method being invoked. The per-instance cache for each method\nwas stored as an attribute on the instance whose name was derived only\nfrom the method \u003ccode\u003e__name__\u003c/code\u003e, so the base and derived methods shared a\nsingle cache slot. The subclass cache was therefore found again when the\nbase method was reached through \u003ccode\u003esuper()\u003c/code\u003e, re-entering the subclass body\nand recursing without end. The cache attribute name now incorporates a\nunique identifier for each decorated method so that a base method and a\nmethod that overrides it use distinct per-instance caches. With thanks to\nthe reporter of \u003ccode\u003eissue [#342](https://github.com/GrahamDumpleton/wrapt/issues/342) \u0026lt;https://github.com/GrahamDumpleton/wrapt/issues/342\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003e@wrapt.lru_cache\u003c/code\u003e was applied to a method of a class deriving from\n\u003ccode\u003ewrapt.ObjectProxy\u003c/code\u003e, the per-instance cache was stored on the wrapped\nobject rather than on the proxy. This is because the proxy \u003ccode\u003e__setattr__\u003c/code\u003e\nforwards attribute assignment to the wrapped object for any name that is\nnot a recognised proxy attribute, and the cache attribute name was not one.\nStoring the cache on the wrapped object had several consequences: the\nwrapped object was polluted with cache attributes it never defined; the\ncache held a reference back to the proxy through the bound method it\nwrapped, so a wrapped object that outlived the proxy kept the proxy alive\nand prevented its collection; wrapping an object that does not accept\narbitrary attributes, such as one using \u003ccode\u003e__slots__\u003c/code\u003e, caused the first\ncached call to fail with an \u003ccode\u003eAttributeError\u003c/code\u003e; and two proxies sharing a\nsingle wrapped object shared one cache and could return results computed\nfor the wrong proxy. The cache attribute is now stored on the proxy itself\nusing the proxy \u003ccode\u003e__self_setattr__\u003c/code\u003e method when the instance is a wrapt\nobject proxy, falling back to \u003ccode\u003esetattr\u003c/code\u003e for ordinary instances.\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/GrahamDumpleton/wrapt/commit/0ae09fd58044fa7ae054614425e633e68d123541\"\u003e\u003ccode\u003e0ae09fd\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.2.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/86db7a9d83a6b9bf97bfdb1c520524ec8aed8c8a\"\u003e\u003ccode\u003e86db7a9\u003c/code\u003e\u003c/a\u003e Update to 2.2.2 for final release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/6deda4336713f4b1a6a36c4c157df1662410861d\"\u003e\u003ccode\u003e6deda43\u003c/code\u003e\u003c/a\u003e Update to 2.2.2rc3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/9c48a1efa25eadb7a20eafead54dcfecefa8f55e\"\u003e\u003ccode\u003e9c48a1e\u003c/code\u003e\u003c/a\u003e Constrain lru_cache proxy detection to BaseObjectProxy subclasses.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/4053838ed67a1151200f2e0db938eceb109fab2d\"\u003e\u003ccode\u003e4053838\u003c/code\u003e\u003c/a\u003e Update version to 2.2.2rc2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/99bf4ef078d69c07716fad5bed5129c400a155d6\"\u003e\u003ccode\u003e99bf4ef\u003c/code\u003e\u003c/a\u003e Store lru_cache per-instance cache on object proxy not wrapped object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0e862fbb738116127786b0a82cceb7e13837fe86\"\u003e\u003ccode\u003e0e862fb\u003c/code\u003e\u003c/a\u003e Document pickling instances with lru_cache decorated methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/73dca57c78c501e087feda72c53c93ba09807b21\"\u003e\u003ccode\u003e73dca57\u003c/code\u003e\u003c/a\u003e Add lru_cache tests for overridden methods calling super().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/beead5c2e0281f66bf41172fdebccf0d039e1afd\"\u003e\u003ccode\u003ebeead5c\u003c/code\u003e\u003c/a\u003e Fix lru_cache recursion for overridden methods calling super().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/fbf2fc1451d7165e969c3fde6a55da5397683f83\"\u003e\u003ccode\u003efbf2fc1\u003c/code\u003e\u003c/a\u003e Document pure Python failure mode for ObjectProxy + ABCMeta mixin.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/2.2.1...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yara-x` from 1.18.0 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/VirusTotal/yara-x/releases\"\u003eyara-x's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing machine architecture types to \u003ccode\u003epe\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/VirusTotal/yara-x/issues/687\"\u003e#687\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd warning for single-byte patterns (71baa67).\u003c/li\u003e\n\u003cli\u003eAdd warning for duplicate patterns in a rule (9061803).\u003c/li\u003e\n\u003cli\u003eSmall optimization when generating structures from a protobuf (9255a3e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Don't derive header constraints from patterns with certain flags (\u003ca href=\"https://redirect.github.com/VirusTotal/yara-x/issues/689\"\u003e#689\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Prevent undefined behavior when deserializing rules from untrusted binary data (25efa37).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors: \u003ca href=\"https://github.com/nugxperience\"\u003e\u003ccode\u003e@​nugxperience\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/cherepanov74\"\u003e\u003ccode\u003e@​cherepanov74\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/VirusTotal/yara-x/commit/fe40349ea12c5ccb89aae9f304b979c4fb410f66\"\u003e\u003ccode\u003efe40349\u003c/code\u003e\u003c/a\u003e tests: ignore disabled modules while running tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/dc48090f1f9655cc0c7945e1771d9743c76d4d62\"\u003e\u003ccode\u003edc48090\u003c/code\u003e\u003c/a\u003e chore: fix test cases after disabling \u003ccode\u003evba\u003c/code\u003e and \u003ccode\u003eolecf\u003c/code\u003e modules.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/4426f0a3ce52e14732bb8b94dba2c0e183812003\"\u003e\u003ccode\u003e4426f0a\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.19.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/f7d6a43a1af114abc55a9a94169d2e20dcbda0cd\"\u003e\u003ccode\u003ef7d6a43\u003c/code\u003e\u003c/a\u003e chore: don't include \u003ccode\u003evba\u003c/code\u003e and \u003ccode\u003eolecf\u003c/code\u003e as default modules.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/25efa375572efcfbe880a263ee3b0932d4b61a24\"\u003e\u003ccode\u003e25efa37\u003c/code\u003e\u003c/a\u003e fix: prevent undefined behavior when deserializing rules from untrusted binar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/4fbaf55606e06af6e109d02b764a9190edf8c4ed\"\u003e\u003ccode\u003e4fbaf55\u003c/code\u003e\u003c/a\u003e docs: add documentation for \u003ccode\u003eRules::header_constraints\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/496b5c82f3db66e655e7ff459347438d7aeade74\"\u003e\u003ccode\u003e496b5c8\u003c/code\u003e\u003c/a\u003e style: remove empty lines.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/3f2b2aa9962e548bf559dd8fb0b409cd4caaebe1\"\u003e\u003ccode\u003e3f2b2aa\u003c/code\u003e\u003c/a\u003e chore: upgrade dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/71baa67f2337cf164bfa7ac4008f54b41476cadc\"\u003e\u003ccode\u003e71baa67\u003c/code\u003e\u003c/a\u003e feat: flag single-byte patterns as slow and allow failing compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VirusTotal/yara-x/commit/b2e0fca0fdb4de54aae27a909741132bbac995f2\"\u003e\u003ccode\u003eb2e0fca\u003c/code\u003e\u003c/a\u003e chore: assert completeness of pattern flags for header constraints\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/VirusTotal/yara-x/compare/v1.18.0...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc...\n\n_Description has been truncated_","html_url":"https://github.com/sthagen/pypa-warehouse/pull/2416","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sthagen%2Fpypa-warehouse/issues/2416","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2416/packages"}},{"old_version":"1.42.1","new_version":"1.43.0","update_type":"minor","path":"/backend","pr_created_at":"2026-07-01T01:24:49.000Z","version_change":"1.42.1 → 1.43.0","issue":{"uuid":"4781583755","node_id":"PR_kwDOSNjZ2s7seBBu","number":880,"state":"open","title":"Bump the backend-python group in /backend with 31 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-01T01:24:49.000Z","updated_at":"2026-07-01T01:35:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"backend-python","update_count":31,"packages":[{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.4","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the backend-python group in /backend with 31 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.4` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\nUpdates `fastapi` from 0.136.1 to 0.138.2\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.138.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor Library Skills, make info easier to find for agents. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15841\"\u003e#15841\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👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15836\"\u003e#15836\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 issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15833\"\u003e#15833\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 issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15831\"\u003e#15831\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: Add TestMu again. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15830\"\u003e#15830\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 zizmor workflow security checks. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15820\"\u003e#15820\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⬆ Bump pydantic-settings from 2.14.1 to 2.14.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15799\"\u003e#15799\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\u003c/ul\u003e\n\u003ch2\u003e0.138.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003eapp.frontend(\u0026quot;/\u0026quot;, directory=\u0026quot;dist\u0026quot;)\u003c/code\u003e and \u003ccode\u003erouter.frontend(\u0026quot;/\u0026quot;, directory=\u0026quot;dist\u0026quot;)\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15800\"\u003e#15800\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead the docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/frontend/\"\u003eFrontend\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix typo in release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15807\"\u003e#15807\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 \u003ccode\u003eapp.frontend()\u003c/code\u003e instructions to Agent Library Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15805\"\u003e#15805\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 release notes link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15802\"\u003e#15802\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 white space characters in bigger apps. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15801\"\u003e#15801\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✏️ Fix grammar, typos, and broken links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15694\"\u003e#15694\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Enable Hindi docs translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15554\"\u003e#15554\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix failing test, update format for raised errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15804\"\u003e#15804\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👷 Fix test-alls-green. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15803\"\u003e#15803\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🔧 Enable checking \u003ccode\u003erelease-notes.md\u003c/code\u003e for typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15796\"\u003e#15796\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📝 Tweak wording about deploying to FastAPI Cloud. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15793\"\u003e#15793\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🔨 Use \u003ccode\u003egpt-5.5\u003c/code\u003e model in \u003ccode\u003etranslate.py\u003c/code\u003e, specify \u003ccode\u003e-chat\u003c/code\u003e to avoid warnings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15792\"\u003e#15792\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.137.2\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eiter_route_contexts()\u003c/code\u003e for advanced use cases that used to use \u003ccode\u003erouter.routes\u003c/code\u003e (e.g. Jupyverse). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15785\"\u003e#15785\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Fix broken Markdown in Korean custom response docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15774\"\u003e#15774\u003c/a\u003e by \u003ca href=\"https://github.com/kooqooo\"\u003e\u003ccode\u003e@​kooqooo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15761\"\u003e#15761\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15760\"\u003e#15760\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/702fea83bb3ef0b558104835d7936af49650fb2d\"\u003e\u003ccode\u003e702fea8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.138.2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15864\"\u003e#15864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6466865eec63cb545869d80e2ee6fbc54c4d364e\"\u003e\u003ccode\u003e6466865\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b790e14cb686506df663959ac4879053cfed38db\"\u003e\u003ccode\u003eb790e14\u003c/code\u003e\u003c/a\u003e ♻️ Make \u003ccode\u003eapp.frontend()\u003c/code\u003e return 404 for methods other than \u003ccode\u003eGET\u003c/code\u003e or \u003ccode\u003eHEAD\u003c/code\u003e wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c2708d981729c96437dcc1d7cfa40cd15128bc60\"\u003e\u003ccode\u003ec2708d9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/403b1fa16f9519f4b5ab52413daae059479fae4a\"\u003e\u003ccode\u003e403b1fa\u003c/code\u003e\u003c/a\u003e 🔧 Update sponsors: remove Stainless (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15862\"\u003e#15862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1929ac23195136e8616ed1b7c3fd84c65b26d234\"\u003e\u003ccode\u003e1929ac2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cba41585675ecb0e119d3ca258821659f07ec3f7\"\u003e\u003ccode\u003ecba4158\u003c/code\u003e\u003c/a\u003e ♻️ Refactor how sponsors data is handled for banners (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15852\"\u003e#15852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b90c49aefad4958abdfbcacf9c2f816940a8f0e2\"\u003e\u003ccode\u003eb90c49a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.138.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15842\"\u003e#15842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f2f3df4852bf7cb29be1187806d95a0fdc7ea40\"\u003e\u003ccode\u003e1f2f3df\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0af003a85da454dcf6b6783e0ad3f0dd687e944f\"\u003e\u003ccode\u003e0af003a\u003c/code\u003e\u003c/a\u003e ♻️ Refactor Library Skills, make info easier to find for agents (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15841\"\u003e#15841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.138.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosmtplib` from 3.0.1 to 5.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cole/aiosmtplib/releases\"\u003eaiosmtplib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Discard any buffered server data before the STARTTLS handshake, preventing a response-injection attack where a man-in-the-middle pre-stages plaintext that would otherwise be read as part of the encrypted session. More details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Corrected SMTPResponse \u003ccode\u003e__repr__\u003c/code\u003e result\u003c/li\u003e\n\u003cli\u003eBugfix: Calling \u003ccode\u003econnect()\u003c/code\u003e on an already-connected client now raises \u003ccode\u003eSMTPException\u003c/code\u003e instead of deadlocking on the connection lock\u003c/li\u003e\n\u003cli\u003eFeature: Poe command runner for dev tasks\u003c/li\u003e\n\u003cli\u003eBugfix: Timeout ignored during CRAM-MD5 verification\u003c/li\u003e\n\u003cli\u003eBugfix: Only parse EHLO response after validating success\u003c/li\u003e\n\u003cli\u003eBugfix: return None from extract_sender when address list is empty\u003c/li\u003e\n\u003cli\u003eBugfix: Enforce a maximum total response size, preventing unbounded memory use if a server streams data with no line ending or endless multiline continuation lines\u003c/li\u003e\n\u003cli\u003eBugfix: Use the invalid_response status code (-1) instead of 500 when a server response line exceeds the maximum length\u003c/li\u003e\n\u003cli\u003eBugfix: A read timeout now closes the connection instead of leaving it in a desynced state, where a late server response could be mispaired with a subsequent command\u003c/li\u003e\n\u003cli\u003eBugfix: Correctly parse old-style \u003ccode\u003eAUTH=\u003c/code\u003e extension advertisements; all advertised methods are now kept (e.g. both PLAIN and LOGIN from \u003ccode\u003eAUTH=PLAIN LOGIN\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: ESMTP extension lines with leading whitespace are no longer ignored\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.1.1...v5.1.2\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.1.1...v5.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Reject control characters (the C0 range 0x00-0x1F and DEL 0x7F, including CR, LF, and NUL) in SMTP command arguments, preventing command injection via input passed to mail(), rcpt(), vrfy(), expn() or sendmail(). Such input now raises ValueError before anything is written to the connection. More details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\u003c/a\u003e Thanks to \u003ca href=\"https://github.com/tonghuaroot\"\u003e\u003ccode\u003e@​tonghuaroot\u003c/code\u003e\u003c/a\u003e for the report.\u003c/li\u003e\n\u003cli\u003eBugfix: SMTP.quit() no longer hangs until the read timeout when the peer drops the transport with an exception after QUIT is sent but before the 221 reply is parsed (e.g. AWS SES closing TLS without close_notify). Contributed by \u003ca href=\"https://github.com/yamaaaaaa31\"\u003e\u003ccode\u003e@​yamaaaaaa31\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yamaaaaaa31\"\u003e\u003ccode\u003e@​yamaaaaaa31\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/cole/aiosmtplib/pull/346\"\u003ecole/aiosmtplib#346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.1.0...v5.1.1\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.1.0...v5.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature: Add XOAUTH2 authentication support\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v5.0.0...v5.1.0\"\u003ehttps://github.com/cole/aiosmtplib/compare/v5.0.0...v5.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBREAKING\u003c/strong\u003e: Drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eVarious testing config 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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/cole/aiosmtplib/pull/328\"\u003ecole/aiosmtplib#328\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/cole/aiosmtplib/blob/main/CHANGELOG.rst\"\u003eaiosmtplib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Discard any buffered server data before the STARTTLS handshake,\npreventing a response-injection attack where a man-in-the-middle pre-stages\nplaintext that would otherwise be read as part of the encrypted session.\nMore details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-vxj7-4xrp-5vr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Corrected SMTPResponse \u003ccode\u003e__repr__\u003c/code\u003e result\u003c/li\u003e\n\u003cli\u003eBugfix: Calling \u003ccode\u003econnect()\u003c/code\u003e on an already-connected client now raises\n\u003ccode\u003eSMTPException\u003c/code\u003e instead of deadlocking on the connection lock\u003c/li\u003e\n\u003cli\u003eFeature: Poe command runner for dev tasks\u003c/li\u003e\n\u003cli\u003eBugfix: Timeout ignored during CRAM-MD5 verification\u003c/li\u003e\n\u003cli\u003eBugfix: Only parse EHLO response after validating success\u003c/li\u003e\n\u003cli\u003eBugfix: return None from extract_sender when address list is empty\u003c/li\u003e\n\u003cli\u003eBugfix: Enforce a maximum total response size, preventing unbounded memory\nuse if a server streams data with no line ending or endless multiline\ncontinuation lines\u003c/li\u003e\n\u003cli\u003eBugfix: Use the invalid_response status code (-1) instead of 500 when a\nserver response line exceeds the maximum length\u003c/li\u003e\n\u003cli\u003eBugfix: A read timeout now closes the connection instead of leaving it in a\ndesynced state, where a late server response could be mispaired with a\nsubsequent command\u003c/li\u003e\n\u003cli\u003eBugfix: Correctly parse old-style \u003ccode\u003eAUTH=\u003c/code\u003e extension advertisements; all\nadvertised methods are now kept (e.g. both PLAIN and LOGIN from\n\u003ccode\u003eAUTH=PLAIN LOGIN\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: ESMTP extension lines with leading whitespace are no\nlonger ignored\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity: Reject control characters (the C0 range \u003ccode\u003e0x00\u003c/code\u003e-\u003ccode\u003e0x1F\u003c/code\u003e and DEL\n\u003ccode\u003e0x7F\u003c/code\u003e, including CR, LF, and NUL) in SMTP command arguments, preventing\ncommand injection via input passed to \u003ccode\u003email()\u003c/code\u003e, \u003ccode\u003ercpt()\u003c/code\u003e, \u003ccode\u003evrfy()\u003c/code\u003e,\n\u003ccode\u003eexpn()\u003c/code\u003e or \u003ccode\u003esendmail()\u003c/code\u003e. Such input now raises \u003ccode\u003eValueError\u003c/code\u003e before\nanything is written to the connection.\nMore details: \u003ca href=\"https://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\"\u003ehttps://github.com/cole/aiosmtplib/security/advisories/GHSA-v3q9-hj7j-63hq\u003c/a\u003e\nThanks to \u003ca href=\"https://github.com/tonghuaroot\"\u003e\u003ccode\u003e@​tonghuaroot\u003c/code\u003e\u003c/a\u003e for the report.\u003c/li\u003e\n\u003cli\u003eBugfix: \u003ccode\u003eSMTP.quit()\u003c/code\u003e no longer hangs until the read timeout when the\npeer drops the transport with an exception after \u003ccode\u003eQUIT\u003c/code\u003e is sent but\nbefore the 221 reply is parsed (e.g. AWS SES closing TLS without\n\u003ccode\u003eclose_notify\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature: Add XOAUTH2 authentication support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/bffc6d19fbb04a84284c8c12ef640fbae0641a9c\"\u003e\u003ccode\u003ebffc6d1\u003c/code\u003e\u003c/a\u003e release: v5.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/9fab7ba1361dbf7622ede1315a24be805cff09c9\"\u003e\u003ccode\u003e9fab7ba\u003c/code\u003e\u003c/a\u003e fix(security): STARTTLS injection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/382b3c9c9954c62472a7ebc460b292f36f7c8ca3\"\u003e\u003ccode\u003e382b3c9\u003c/code\u003e\u003c/a\u003e ci: try codecov 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/f0087db4361b44e390b518779e04c7ea3a51924d\"\u003e\u003ccode\u003ef0087db\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/c0be34116ceeabe99b587925bc0b2931bbe68f6f\"\u003e\u003ccode\u003ec0be341\u003c/code\u003e\u003c/a\u003e fix: buildcheck via poe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/889c24c535cd5b2e0193029237ba592c4d7b4cdc\"\u003e\u003ccode\u003e889c24c\u003c/code\u003e\u003c/a\u003e lint: auto fixes from pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/3e25ac48cc298a2f3ee7e9e45ee50bf5a2d4cff7\"\u003e\u003ccode\u003e3e25ac4\u003c/code\u003e\u003c/a\u003e fix: mixed old/new style auth parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/5cd299f3037024eeeb63b6a74ab9bb638f60a78a\"\u003e\u003ccode\u003e5cd299f\u003c/code\u003e\u003c/a\u003e fix: explicit close on read timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/e1521d791552b552e97ee96075e00bccbbf6062b\"\u003e\u003ccode\u003ee1521d7\u003c/code\u003e\u003c/a\u003e fix: error (don't hang) on double connect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cole/aiosmtplib/commit/e8995519150b0646e094d44d2bd13eec0bd3795e\"\u003e\u003ccode\u003ee899551\u003c/code\u003e\u003c/a\u003e fix: SMTPResponse repr\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cole/aiosmtplib/compare/v3.0.1...v5.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.4 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.5.2 to 3.5.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.3 (2026-06-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix a crash on free-threaded builds when multiple greenlets were\nholding a critical section on an object and the GIL for the thread\nwas dropped. See \u003ccode\u003eissue 513 \u0026lt;https://github.com/python-greenlet/greenlet/issues/513\u0026gt;\u003c/code\u003e_. Thanks\nto ddorian.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-greenlet/greenlet/commit/6ee8c2c5b92fbf296c10219030d0bd3ab0ea6300\"\u003e\u003ccode\u003e6ee8c2c\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/6ec0bbba46fdcbfbf5fe4a37ab744aa3835f05c6\"\u003e\u003ccode\u003e6ec0bbb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/514\"\u003e#514\u003c/a\u003e from python-greenlet/issue513-preserve-crit-section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c03a7e6932c3b437bdf873acfc66fbaae31f1875\"\u003e\u003ccode\u003ec03a7e6\u003c/code\u003e\u003c/a\u003e Py3.13+: Preserve thread state critical_section to prevent crash on free-thre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/bc10829b9eb05d35bc0b8a09c8c6e4d54cfccc18\"\u003e\u003ccode\u003ebc10829\u003c/code\u003e\u003c/a\u003e Speed up manylinux test runs by only running the core checks; only start many...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c2db75dca4bafa562ace9553b6e5c17af6b483e4\"\u003e\u003ccode\u003ec2db75d\u003c/code\u003e\u003c/a\u003e Back to development: 3.5.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.5.2...3.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.197.0 to 2.198.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.198.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.197.0...v2.198.0\"\u003e2.198.0\u003c/a\u003e (2026-06-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadexchangebuyer2:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a6b7a3c1312a0b843c6451f1502268232af1e08d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a6b7a3c1312a0b843c6451f1502268232af1e08d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/39a7f8e64940d318ce50b5431ebca0ca6f044b4e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/39a7f8e64940d318ce50b5431ebca0ca6f044b4e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/47cc6885a57ff256a2878b8902f66f4d97e980be\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/47cc6885a57ff256a2878b8902f66f4d97e980be\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bf9010bd3c1f6825858612032ad8722e53368738\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bf9010bd3c1f6825858612032ad8722e53368738\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/60ed501536c048d4257f05fb44d01ac90afc45c6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/60ed501536c048d4257f05fb44d01ac90afc45c6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/07ab81d00d9225efc0d1bfb54d7a2131537013bb\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/07ab81d00d9225efc0d1bfb54d7a2131537013bb\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d13cd0d5ec973a994a6409e4ccdd879ca5cdec24\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d13cd0d5ec973a994a6409e4ccdd879ca5cdec24\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/29d33229a8aca59cc2105ca57f10c5c34392eedf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/29d33229a8aca59cc2105ca57f10c5c34392eedf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b2dcfba95c75409fcebe62b45d481e2b9cee79c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b2dcfba95c75409fcebe62b45d481e2b9cee79c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1dc37cdcddd779ca435abc9593b0bfb4e298770d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1dc37cdcddd779ca435abc9593b0bfb4e298770d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/001dba95de25008758d1955c7ff5db51e48606a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/001dba95de25008758d1955c7ff5db51e48606a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eassuredworkloads:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2982b1986becfc8cf17768a86146cfac04338f81\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2982b1986becfc8cf17768a86146cfac04338f81\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b64d9bb3d591fd521b86b21fdbc37f3dd793f43\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b64d9bb3d591fd521b86b21fdbc37f3dd793f43\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigqueryconnection:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8e6a3e697448de8fd7128240f2615228db24e85c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8e6a3e697448de8fd7128240f2615228db24e85c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/012db99dae421f7b21f0e43b1df333b209cf3e15\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/012db99dae421f7b21f0e43b1df333b209cf3e15\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9548dcf1aa1eeaa6524b6d9386178dac69c39096\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9548dcf1aa1eeaa6524b6d9386178dac69c39096\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecalendar:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/399252cfd1bed4193f5821e66536d6a3a75f03c8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/399252cfd1bed4193f5821e66536d6a3a75f03c8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2716cb2b0eb0d91686901d5153aa9581d1143bb4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2716cb2b0eb0d91686901d5153aa9581d1143bb4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0ae828d973d7bb7f3e6f86bd4338b11b9f3c3e8f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0ae828d973d7bb7f3e6f86bd4338b11b9f3c3e8f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7afd85a6912a8239b3c72ca765db28487348222a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7afd85a6912a8239b3c72ca765db28487348222a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromewebstore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/83fbd762d4539251e84ebd6af38a770c73027da7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/83fbd762d4539251e84ebd6af38a770c73027da7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbuild:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c38d7967d2acd8762a0b803592d331c11627f750\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c38d7967d2acd8762a0b803592d331c11627f750\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclouddeploy:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/28abab7bb30a59f9487cb693ad90799ccaabdf7d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/28abab7bb30a59f9487cb693ad90799ccaabdf7d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fead0039902e25ada74a65b06d430e8cfa7233f5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fead0039902e25ada74a65b06d430e8cfa7233f5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudsupport:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/81e568808c282c0cc8901eed0551bd8b67b5a655\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/81e568808c282c0cc8901eed0551bd8b67b5a655\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecomposer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9a32b295fe297dc5e71cedd65f75e36a128335f5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9a32b295fe297dc5e71cedd65f75e36a128335f5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/11cd8081390f3cfa005933660534d5336679cff6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/11cd8081390f3cfa005933660534d5336679cff6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econfig:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d091a431967e3770e9569e5fb5e55097716b1ce9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d091a431967e3770e9569e5fb5e55097716b1ce9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/32b237f7393e38201fd2999894d7e6f08afc4819\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/32b237f7393e38201fd2999894d7e6f08afc4819\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/da22c635c61f623f972f5dc6c4107abd4d15a0ec\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/da22c635c61f623f972f5dc6c4107abd4d15a0ec\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/437bae8628635069277f953be2fb11de0f25fe19\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/437bae8628635069277f953be2fb11de0f25fe19\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3c1532030f7b13ff020152ff2a9ac8f399b787e9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3c1532030f7b13ff020152ff2a9ac8f399b787e9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e5fb813d94b817c0c9a56fff7a6962e73d3463b8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e5fb813d94b817c0c9a56fff7a6962e73d3463b8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/07bb17d43cad08406c8e71e932124af8448a870b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/07bb17d43cad08406c8e71e932124af8448a870b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/23f350934e28f38d007d767f4392a77685811484\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/23f350934e28f38d007d767f4392a77685811484\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataproc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a7fcf59c2e438af443ab064c4709f4d3781d9e5e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a7fcf59c2e438af443ab064c4709f4d3781d9e5e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastream:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5dfdcf674450bbe44af6fb6ccc6bd7d31b5452f2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5dfdcf674450bbe44af6fb6ccc6bd7d31b5452f2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fef9bf7835061f93ea0a8fc7977ee0a7b7aafbc6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fef9bf7835061f93ea0a8fc7977ee0a7b7aafbc6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperknowledge:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a4cd9158c18ac61a209c659671721460b3080cfd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a4cd9158c18ac61a209c659671721460b3080cfd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d2ef2eb9430ada50181357babc5de143bb7d620d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d2ef2eb9430ada50181357babc5de143bb7d620d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8bada744a9918d20e412a7166bc01a3009bfa793\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8bada744a9918d20e412a7166bc01a3009bfa793\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edisplayvideo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/22d41db20d302eed8257606127b1d9da4e48d195\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/22d41db20d302eed8257606127b1d9da4e48d195\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a6f6a89d23fabc5b1acb399cbf94a4e2f0f5c471\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a6f6a89d23fabc5b1acb399cbf94a4e2f0f5c471\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edomains:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91394c703ca7914f703991333f30df0925b036c5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91394c703ca7914f703991333f30df0925b036c5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003eea0e936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/bf14134647a9c5c9e7430b0c5034afbcec89a203\"\u003e\u003ccode\u003ebf14134\u003c/code\u003e\u003c/a\u003e chore(main): release 2.198.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/ea0e936f22dcf01a92bbd7ad7ede5bbe773e7d3c\"\u003e\u003ccode\u003eea0e936\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/348fc8fe6f88baffce730b5996a0ccfcaf8af7ad\"\u003e\u003ccode\u003e348fc8f\u003c/code\u003e\u003c/a\u003e chore: migrate samples to google-cloud-python system test infrastructure (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2768\"\u003e#2768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.197.0...v2.198.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-fastapi-instrumentator` from 8.0.0 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/releases\"\u003eprometheus-fastapi-instrumentator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-06-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003easyncio.iscoroutinefunction()\u003c/code\u003e with \u003ccode\u003einspect.iscoroutinefunction()\u003c/code\u003e in \u003ccode\u003eInstrumentator.add()\u003c/code\u003e to avoid warnings on Python 3.12+ in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/378\"\u003e#378\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-06-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed resolving route names for routers registered via \u003ccode\u003einclude_router()\u003c/code\u003e on FastAPI 0.116+ leading to \u003ccode\u003eAttributeError\u003c/code\u003e getting raised on every request. The internal route name resolution now also handles \u003ccode\u003e_IncludedRouter\u003c/code\u003e and recurses into the included router's own routes so the Prometheus label reflects the leaf endpoint. Thanks to \u003ca href=\"https://github.com/adeebmirza\"\u003e\u003ccode\u003e@​adeebmirza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/371\"\u003e#371\u003c/a\u003e for fixing it.\u003c/li\u003e\n\u003cli\u003eFixed hitting mounts with slash redirection collecting wrong handler name. Thanks to \u003ca href=\"https://github.com/lbonn\"\u003e\u003ccode\u003e@​lbonn\u003c/code\u003e\u003c/a\u003e for raising and fixing this issue in \u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/369\"\u003e#369\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/trallnag/prometheus-fastapi-instrumentator/blob/master/CHANGELOG.md\"\u003eprometheus-fastapi-instrumentator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e / 2026-06-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003easyncio.iscoroutinefunction()\u003c/code\u003e with\n\u003ccode\u003einspect.iscoroutinefunction()\u003c/code\u003e in \u003ccode\u003eInstrumentator.add()\u003c/code\u003e to avoid warnings on\nPython 3.12+ in\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/378\"\u003e#378\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.0...v8.0.1\"\u003e8.0.1\u003c/a\u003e / 2026-06-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed resolving route names for routers registered via \u003ccode\u003einclude_router()\u003c/code\u003e on\nFastAPI 0.116+ leading to \u003ccode\u003eAttributeError\u003c/code\u003e getting raised on every request.\nThe internal route name resolution now also handles \u003ccode\u003e_IncludedRouter\u003c/code\u003e and\nrecurses into the included router's own routes so the Prometheus label\nreflects the leaf endpoint. Thanks to\n\u003ca href=\"https://github.com/adeebmirza\"\u003e\u003ccode\u003e@​adeebmirza\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/371\"\u003e#371\u003c/a\u003e\nfor fixing it.\u003c/li\u003e\n\u003cli\u003eFixed hitting mounts with slash redirection collecting wrong handler name.\nThanks to \u003ca href=\"https://github.com/lbonn\"\u003e\u003ccode\u003e@​lbonn\u003c/code\u003e\u003c/a\u003e for raising and fixing this issue\nin\n\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/pull/369\"\u003e#369\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/trallnag/prometheus-fastapi-instrumentator/commit/c1c1fb645ce3b28d538413a9ac18cc7559c0c385\"\u003e\u003ccode\u003ec1c1fb6\u003c/code\u003e\u003c/a\u003e chore: Prepare release v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/652991e26b5f0b78711bd67ecca21c4d07800571\"\u003e\u003ccode\u003e652991e\u003c/code\u003e\u003c/a\u003e docs: Add link to pr in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/4cca8aac70bee7b2f8cee0830eeda39a8887b883\"\u003e\u003ccode\u003e4cca8aa\u003c/code\u003e\u003c/a\u003e build(deps): bump pre-commit/action from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/dd185b0d9dcfb1bfd2530c761330dc47112a2b74\"\u003e\u003ccode\u003edd185b0\u003c/code\u003e\u003c/a\u003e build(deps): bump softprops/action-gh-release from 2 to 3 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/8e8f8c51861bf182094b24aa54a487c332718bfd\"\u003e\u003ccode\u003e8e8f8c5\u003c/code\u003e\u003c/a\u003e build(deps): bump amannn/action-semantic-pull-request from 5 to 6 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/778526bb99bcac0eb087f35fd32b1821384ef0c3\"\u003e\u003ccode\u003e778526b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/c212ede9a3f44326ac9b691fc9cb25eeb31faf09\"\u003e\u003ccode\u003ec212ede\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 2 to 4 (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/f31451c829af64872000699aaada7217603e4d35\"\u003e\u003ccode\u003ef31451c\u003c/code\u003e\u003c/a\u003e chore: Replace deprecated coroutine detection (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/c43336855fd0b6f978a01fd793da02e383f71abb\"\u003e\u003ccode\u003ec433368\u003c/code\u003e\u003c/a\u003e test(routing): add 405/Mount/WebSocket coverage for _IncludedRouter (\u003ca href=\"https://redirect.github.com/trallnag/prometheus-fastapi-instrumentator/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/commit/e7b326620a92df05b18880b2cc8ba06ebe9cf389\"\u003e\u003ccode\u003ee7b3266\u003c/code\u003e\u003c/a\u003e Remove incorrect build badge from readme\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/trallnag/prometheus-fastapi-instrumentator/compare/v8.0.0...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telem...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/880","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/880","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/880/packages"}},{"old_version":"1.42.1","new_version":"1.43.0","update_type":"minor","path":null,"pr_created_at":"2026-06-29T21:18:05.000Z","version_change":"1.42.1 → 1.43.0","issue":{"uuid":"4771658777","node_id":"PR_kwDOSNjZ2s7r9fdZ","number":856,"state":"closed","title":"chore(deps): bump the ci-python group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-07-01T01:25:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T21:18:05.000Z","updated_at":"2026-07-01T01:25:02.000Z","time_to_close":101215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ci-python","update_count":40,"packages":[{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-resource-manager","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"huggingface-hub","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"importlib-metadata","old_version":"8.9.0","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.28.0","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.3","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ci-python group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [google-cloud-resource-manager](https://github.com/googleapis/google-cloud-python) | `1.17.0` | `1.18.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.9.0` | `2.10.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.20.1` | `1.21.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.9.0` | `9.0.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.28.0` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.14.6` | `0.17.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.8` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.3` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\n\nUpdates `anyio` from 4.14.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\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/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eUnreleased\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-resource-manager` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-resource-manager's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-resource-manager: v1.18.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003e1.18.0\u003c/a\u003e (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eregenerate google-cloud-[o-r] packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17075\"\u003e#17075\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f4bd0182d808ae73c3c6981e6ce3d565f78a6051\"\u003ef4bd018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a5ad18cbad0577b79917dfad2242a57dc21432e1\"\u003e\u003ccode\u003ea5ad18c\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17482\"\u003e#17482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f6937b33e31a4c3e884165b582442274a366a995\"\u003e\u003ccode\u003ef6937b3\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-bigtable 2.39.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17497\"\u003e#17497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/172302b809b0ff13267f18b5e7dd24be0dce2f70\"\u003e\u003ccode\u003e172302b\u003c/code\u003e\u003c/a\u003e ci(bigquery-storage): fix \u003ccode\u003ecore_deps_from_source\u003c/code\u003e and \u003ccode\u003eprerelease_deps\u003c/code\u003e by in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e7268785c6736c10c1337160b4d8606975062637\"\u003e\u003ccode\u003ee726878\u003c/code\u003e\u003c/a\u003e fix(bigframes): world-readable temp zip in create_cloud_function (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17522\"\u003e#17522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2f893b1b53e7394655fd204d1f8a138212ad8227\"\u003e\u003ccode\u003e2f893b1\u003c/code\u003e\u003c/a\u003e fix: bump \u003ccode\u003e@​angular/common\u003c/code\u003e, \u003ccode\u003e@​angular/forms\u003c/code\u003e, \u003ccode\u003e@​angular/platform-browser\u003c/code\u003e and \u003ca href=\"https://github.com/ang\"\u003e\u003ccode\u003e@​ang\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f23063f9182cdec868c16afb80304892850fbe88\"\u003e\u003ccode\u003ef23063f\u003c/code\u003e\u003c/a\u003e fix: bump langsmith from 0.8.0 to 0.8.18 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17518\"\u003e#17518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6fc45e3790c5a248dcec4b74799834c7b9219ef0\"\u003e\u003ccode\u003e6fc45e3\u003c/code\u003e\u003c/a\u003e fix: bump undici and \u003ccode\u003e@​angular/build\u003c/code\u003e in /packages/bigframes/bigframes/display/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/36b5b7ebb01030a2d0f10d49fe4827ddc79dde9a\"\u003e\u003ccode\u003e36b5b7e\u003c/code\u003e\u003c/a\u003e fix: bump msgpack from 1.1.1 to 1.2.1 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17520\"\u003e#17520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/11de93965831311445abacaec2d7baeef21f837d\"\u003e\u003ccode\u003e11de939\u003c/code\u003e\u003c/a\u003e tests: add Python 3.15 pre-release testing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17517\"\u003e#17517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/025840544f5d4ab6a429d1cd9bdbb256c981aa0d\"\u003e\u003ccode\u003e0258405\u003c/code\u003e\u003c/a\u003e fix(bigquery): close GAPIC storage transport and auth sessions to prevent soc...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-genai` from 2.9.0 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/releases\"\u003egoogle-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md\"\u003egoogle-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/e41801cd1ad7406b9f63b4a5a0924096765cf772\"\u003e\u003ccode\u003ee41801c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.10.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-genai/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ab37930697772e9d11546b5c48b76f1401ee8d1e\"\u003e\u003ccode\u003eab37930\u003c/code\u003e\u003c/a\u003e chore: Disable ComputerUse.disabled_safety_policies in Gemini Enterprise API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003e\u003ccode\u003eec8f22b\u003c/code\u003e\u003c/a\u003e feat: add video generation and response format parameters.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e\u003ccode\u003e7bb6c72\u003c/code\u003e\u003c/a\u003e feat: add usage fields for steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e\u003ccode\u003e732368f\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003e\u003ccode\u003ea359406\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003e\u003ccode\u003ea4772cc\u003c/code\u003e\u003c/a\u003e feat: Add Agent Platform MCP support to async generate_content_stream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/67703bf194d1ab3784d6f2b6814c38d2e7c7554b\"\u003e\u003ccode\u003e67703bf\u003c/code\u003e\u003c/a\u003e chore: Fix comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e\u003ccode\u003e63ec5bb\u003c/code\u003e\u003c/a\u003e docs: fix typos across docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/3260c6f6f6971a1f5fd21a16416204f808df9b22\"\u003e\u003ccode\u003e3260c6f\u003c/code\u003e\u003c/a\u003e chore: Upgrade stalebot action to use v10 (due to Node20 deprecation)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.20.1 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.21.0] Jobs filtering \u0026amp; pagination\u003c/h2\u003e\n\u003ch2\u003e📊 Jobs listing revamped: filter, paginate, and \u003ccode\u003els\u003c/code\u003e instead of \u003ccode\u003eps\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe Jobs listing API and CLI have been overhauled with server-side filtering, proper pagination, and a CLI rename that aligns with the rest of \u003ccode\u003ehf\u003c/code\u003e. \u003ccode\u003elist_jobs()\u003c/code\u003e now accepts \u003ccode\u003estatus\u003c/code\u003e and \u003ccode\u003elabels\u003c/code\u003e parameters that push filtering to the server, and returns a lazy iterator (matching \u003ccode\u003elist_models\u003c/code\u003e, \u003ccode\u003elist_datasets\u003c/code\u003e, etc.) so large result sets are fetched page by page. On the CLI side, \u003ccode\u003ehf jobs ps\u003c/code\u003e has been renamed to \u003ccode\u003ehf jobs ls\u003c/code\u003e for consistency with \u003ccode\u003ehf repos ls\u003c/code\u003e, \u003ccode\u003ehf models ls\u003c/code\u003e, and friends — \u003ccode\u003eps\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e still work as aliases.\u003c/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eBreaking changes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elist_jobs()\u003c/code\u003e now returns an \u003ccode\u003eIterable[JobInfo]\u003c/code\u003e instead of \u003ccode\u003elist[JobInfo]\u003c/code\u003e. If you indexed the result (\u003ccode\u003ejobs[0]\u003c/code\u003e), wrap it with \u003ccode\u003elist(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-f\u003c/code\u003e/\u003ccode\u003e--filter\u003c/code\u003e in \u003ccode\u003ehf jobs ls\u003c/code\u003e is deprecated. Use \u003ccode\u003e--status\u003c/code\u003e and \u003ccode\u003e--label\u003c/code\u003e instead. Glob patterns (\u003ccode\u003edata-*\u003c/code\u003e), negation (\u003ccode\u003ekey!=value\u003c/code\u003e), and filtering by \u003ccode\u003eid\u003c/code\u003e/\u003ccode\u003eimage\u003c/code\u003e/\u003ccode\u003ecommand\u003c/code\u003e are no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom huggingface_hub import list_jobs\r\n\u003ch1\u003eFilter by status and labels\u003c/h1\u003e\n\u003cp\u003elist_jobs(status=[\u0026quot;RUNNING\u0026quot;, \u0026quot;SCHEDULING\u0026quot;], labels={\u0026quot;env\u0026quot;: \u0026quot;prod\u0026quot;})\u003c/p\u003e\n\u003ch1\u003eIterate lazily\u003c/h1\u003e\n\u003cp\u003efor job in list_jobs():\nprint(job.id)\u003c/p\u003e\n\u003ch1\u003eMaterialize all results\u003c/h1\u003e\n\u003cp\u003eall_jobs = list(list_jobs())\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Filter by status and labels\r\nhf jobs ls --status running,scheduling --label env=prod --label team=ml\r\n\r\n# Paginate with --limit\r\nhf jobs ls -a --limit 500\r\nhf jobs ls -a --limit 0  # no limit\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add stage/label filtering to list_jobs API and CLI by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias) by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4409\"\u003e#4409\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli\"\u003eCLI guide\u003c/a\u003e, \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/jobs\"\u003eJobs guide\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Fix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA regression introduced in v1.20.0 caused \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e to raise an \u003ccode\u003eImportError\u003c/code\u003e on a fresh interpreter, due to a circular dependency between \u003ccode\u003e_oauth_device\u003c/code\u003e and \u003ccode\u003eutils._http\u003c/code\u003e. The fix moves \u003ccode\u003e_oauth_device.py\u003c/code\u003e into the \u003ccode\u003eutils\u003c/code\u003e layer so all imports resolve downward, eliminating the cycle. No lazy imports or workarounds required.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4385\"\u003e#4385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Other QoL Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetry requests on httpx.RemoteProtocolError by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\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/huggingface/huggingface_hub/commit/aea9b9de1284f54862df99820f963d6030803860\"\u003e\u003ccode\u003eaea9b9d\u003c/code\u003e\u003c/a\u003e Release: v1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e2ed568a0d8e3841d2fe9d192f17cdb30ccf129\"\u003e\u003ccode\u003e2e2ed56\u003c/code\u003e\u003c/a\u003e Release: v1.21.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4bd4c906cac546643ca5fe0ca08e301ce7a98b62\"\u003e\u003ccode\u003e4bd4c90\u003c/code\u003e\u003c/a\u003e [CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/fa3eb459eb3fdf15347930d7dc70f0a7e413d6e5\"\u003e\u003ccode\u003efa3eb45\u003c/code\u003e\u003c/a\u003e [Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ecfd4c5e88acfa885fc9146bf5df61d4de7b46a9\"\u003e\u003ccode\u003eecfd4c5\u003c/code\u003e\u003c/a\u003e [CLI] Fix ty/mypy errors with click 8.4.2 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4408\"\u003e#4408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/341469f1f87fb9932410fde9bdb81ac269a64727\"\u003e\u003ccode\u003e341469f\u003c/code\u003e\u003c/a\u003e Update hardware flavor enums (automated commit) (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4406\"\u003e#4406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2fbcdfeec8a1bf689623ecb87afc7d5db4cd23bb\"\u003e\u003ccode\u003e2fbcdfe\u003c/code\u003e\u003c/a\u003e [i18n-HI] Add Hindi translation for guides overview (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4405\"\u003e#4405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5bc6bfa7df18752f1adfd649816be315937cfa6f\"\u003e\u003ccode\u003e5bc6bfa\u003c/code\u003e\u003c/a\u003e [Jobs] Add stage/label filtering to list_jobs API and CLI (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/d991f099f53c7439edbf9432c5137d2069199e5a\"\u003e\u003ccode\u003ed991f09\u003c/code\u003e\u003c/a\u003e Fix IndexError in filter_repo_objects on an empty pattern (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4402\"\u003e#4402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/0df783fb8f3d1a37b00255007e9af78e4e9dca8f\"\u003e\u003ccode\u003e0df783f\u003c/code\u003e\u003c/a\u003e Retry requests on httpx.RemoteProtocolError (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.20.1...v1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.9.0 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\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/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/07389c4c4609a49826ea9ed510419c2e32eccee9\"\u003e\u003ccode\u003e07389c4\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#193\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/16fb289d38af0d510e39afcbbd43bace2d6d8dd9\"\u003e\u003ccode\u003e16fb289\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epytest-checkdocs\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.14\u003c/code\u003e to resolve deprecation warnings (jaraco/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d9b029be3925b99d3b0d2ef529d79d0a1b9d2c52\"\u003e\u003ccode\u003ed9b029b\u003c/code\u003e\u003c/a\u003e Don't install (nor run) mypy on PyPy (librt build failures) (jaraco/skeleton#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d5c6862e8d8291aec83aeea8261191e491a63d68\"\u003e\u003ccode\u003ed5c6862\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#183\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/18a676486f8679438a6b16992177dee66f61bcaa\"\u003e\u003ccode\u003e18a6764\u003c/code\u003e\u003c/a\u003e Re-use ExceptionTrap for trapping exceptions.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.9.0...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.15.0 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/785cf750016150bda7410e95525bd6ed398102c4\"\u003e\u003ccode\u003e785cf75\u003c/code\u003e\u003c/a\u003e release: 0.16.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e192631a659bcf251402950b78c5d17a17a9d827\"\u003e\u003ccode\u003ee192631\u003c/code\u003e\u003c/a\u003e Add 'Part of the Pydantic Stack' footer to README (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/c929d0cb4c9f59f9b89d1a0585203924f7a87f3b\"\u003e\u003ccode\u003ec929d0c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eserde\u003c/code\u003e Deserializer implementation (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/253\"\u003e#253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/6d57715e01ec78859c62fc5447073c0b5902de39\"\u003e\u003ccode\u003e6d57715\u003c/code\u003e\u003c/a\u003e Modernize Emscripten CI (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a3a02cdb056233eb89be77e6c5a11044f07b4d20\"\u003e\u003ccode\u003ea3a02cd\u003c/code\u003e\u003c/a\u003e Bump maturin to v1.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2fe4246c71c003ddb32c943e3b432925f05f7d3c\"\u003e\u003ccode\u003e2fe4246\u003c/code\u003e\u003c/a\u003e update to PyO3 0.29 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/1429532d486088de53293b57ad315a501e981e9a\"\u003e\u003ccode\u003e1429532\u003c/code\u003e\u003c/a\u003e Drop support for 3.13t target (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.15.0...v0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.28.0 to 1.28.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/777b8d06710c140e3606b0d4598e2aa48546c266\"\u003e\u003ccode\u003e777b8d0\u003c/code\u003e\u003c/a\u003e [v1.x] Support TransportSecuritySettings in the WebSocket server transport (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/47204674fb26185c2cf45f065831f27b8e5d5c65\"\u003e\u003ccode\u003e4720467\u003c/code\u003e\u003c/a\u003e [v1.x] Set Development Status classifier to Production/Stable (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/6df3d734265eb49bf758a5e5eb420937337184e9\"\u003e\u003ccode\u003e6df3d73\u003c/code\u003e\u003c/a\u003e [v1.x] Buffer per-request StreamableHTTP streams; store priming event before ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.28.0...v1.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\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/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.14.6 to 0.17.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose configurable websocket max_size limit by \u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add buffered Chat Completions tool-call streaming by \u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reduce sandbox sink buffering and spool timeouts by \u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3346\"\u003e#3346\u003c/a\u003e clean up branch-only messages when deleting branches by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3347\"\u003eopenai/openai-agents-python#3347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3348\"\u003e#3348\u003c/a\u003e make AdvancedSQLiteSession add_items atomic by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3349\"\u003eopenai/openai-agents-python#3349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cancel sibling guardrail tasks when one raises by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3239\"\u003eopenai/openai-agents-python#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip needs_approval_checker when status resolved in _collect_runs_by_approval by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3259\"\u003eopenai/openai-agents-python#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: validate ls special permission bits by position by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3420\"\u003eopenai/openai-agents-python#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gate remote-mount edit guidance by mode by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3423\"\u003eopenai/openai-agents-python#3423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove dependency on types-requests by \u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: empty list/tuple tool output dropped via all([]) == True by \u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: wake PTY output collection on process exit (E2B) by \u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid stale object-id dedupe in server conversation tracker by \u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: report effective Blaxel timeouts by \u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent ambiguous Realtime multi-agent tool dispatch by \u003ca href=\"https://github.com/mavrickdeveloper\"\u003e\u003ccode\u003e@​mavrickdeveloper\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3441\"\u003eopenai/openai-agents-python#3441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add hint to duplicated MCP server tool name error message by \u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recursively extract HTTP errors from nested ExceptionGroups by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3556\"\u003eopenai/openai-agents-python#3556\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e changes for tool_not_found_behavior option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3462\"\u003eopenai/openai-agents-python#3462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: changes for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e feature addition by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3488\"\u003eopenai/openai-agents-python#3488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix OpenAI capitalization in auto-generated ref titles by \u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add SDK maintainer references and review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3676\"\u003eopenai/openai-agents-python#3676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.7 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3682\"\u003eopenai/openai-agents-python#3682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\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/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8a0e34caaa65b64f5bdf5cf407ac467404c8a106\"\u003e\u003ccode\u003e8a0e34c\u003c/code\u003e\u003c/a\u003e Release 0.17.7 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/30ff4a5239512f8c587b4cd65199e1b3fcf2f6d0\"\u003e\u003ccode\u003e30ff4a5\u003c/code\u003e\u003c/a\u003e fix: recursively extract HTTP errors from nested ExceptionGroups (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3556\"\u003e#3556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16d16ec2be255177af199361757bc8aedc936dd2\"\u003e\u003ccode\u003e16d16ec\u003c/code\u003e\u003c/a\u003e chore: update maintainer-review skill to have two phases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f706d651240aa8e83a536f03d4317d2ff358eefe\"\u003e\u003ccode\u003ef706d65\u003c/code\u003e\u003c/a\u003e chore: adjust examples-auto-run skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2df8adcae7de0802d859e9ac0c6d4755747f17de\"\u003e\u003ccode\u003e2df8adc\u003c/code\u003e\u003c/a\u003e fix: add hint to duplicated MCP server tool name error message (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7192bc968a136a183ae08a5c8d02aee79add41b7\"\u003e\u003ccode\u003e7192bc9\u003c/code\u003e\u003c/a\u003e docs: add SDK maintainer references and review guidance (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3676\"\u003e#3676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a9b7b7ef4a9eb7df50e2d9b837114f899f07b36f\"\u003e\u003ccode\u003ea9b7b7e\u003c/code\u003e\u003c/a\u003e fix(realtime): prevent ambiguous multi-agent tool dispatch (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28d2a6c8382992b80421c9179997492e5fc39ce0\"\u003e\u003ccode\u003e28d2a6c\u003c/code\u003e\u003c/a\u003e feat: add buffered Chat Completions tool-call streaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3506\"\u003e#3506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3f6324c2d2e7cc94d6a44d3e4846d714ed3b83f3\"\u003e\u003ccode\u003e3f6324c\u003c/code\u003e\u003c/a\u003e docs: fix OpenAI capitalization in auto-generated ref titles (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f115dd60159c37f0ca5ed08e6777ff105059e8c2\"\u003e\u003ccode\u003ef115dd6\u003c/code\u003e\u003c/a\u003e fix: reduce sandbox sink buffering and spool timeouts (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3642\"\u003e#3642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 6.33.6 to 7.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/856","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/856","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/856/packages"}},{"old_version":"~=1.30.0","new_version":"\u003e=1.30,\u003c1.44","update_type":"patch","path":null,"pr_created_at":"2026-06-29T09:22:52.000Z","version_change":"~=1.30.0 → \u003e=1.30,\u003c1.44","issue":{"uuid":"4766766178","node_id":"PR_kwDOS3QlSc7rtSHv","number":57,"state":"open","title":"deps(pip)(deps): update opentelemetry-api requirement from ~=1.30.0 to \u003e=1.30,\u003c1.44","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-29T09:22:52.000Z","updated_at":"2026-06-29T09:23:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(pip)(deps): update","packages":[{"name":"opentelemetry-api","old_version":"~=1.30.0","new_version":"\u003e=1.30,\u003c1.44","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.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/ahmdelbaz28-ux/ETAP-AI-WORK-/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmdelbaz28-ux%2FETAP-AI-WORK-/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"}},{"old_version":"\u003e=1.41.1","new_version":"\u003e=1.43.0","update_type":"minor","path":"/packages/sdk-py","pr_created_at":"2026-06-29T04:16:08.000Z","version_change":"\u003e=1.41.1 → \u003e=1.43.0","issue":{"uuid":"4764985404","node_id":"PR_kwDOSR8lhM7rnbHA","number":652,"state":"closed","title":"build(deps): update opentelemetry-api requirement from \u003e=1.41.1 to \u003e=1.43.0 in /packages/sdk-py","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-07-20T04:19:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T04:16:08.000Z","updated_at":"2026-07-20T04:19:46.000Z","time_to_close":1814616,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"opentelemetry-api","old_version":"\u003e=1.41.1","new_version":"\u003e=1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":"/packages/sdk-py","ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.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/kwameasare/loop/pull/652","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwameasare%2Floop/issues/652","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/652/packages"}},{"old_version":"\u003e=1.42.1","new_version":"\u003e=1.43.0","update_type":"minor","path":"/apps/backend","pr_created_at":"2026-06-29T00:36:28.000Z","version_change":"\u003e=1.42.1 → \u003e=1.43.0","issue":{"uuid":"4764172419","node_id":"PR_kwDOSUNGws7rk2lG","number":408,"state":"open","title":"fix(deps)(deps): update opentelemetry-api requirement from \u003e=1.42.1 to \u003e=1.43.0 in /apps/backend","user":"dependabot[bot]","labels":["dependencies","python","needs-review","backend","size/XS"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-29T00:36:28.000Z","updated_at":"2026-06-29T00:39:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)(deps): update","packages":[{"name":"opentelemetry-api","old_version":"\u003e=1.42.1","new_version":"\u003e=1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":"/apps/backend","ecosystem":"pip"},"body":"Updates the requirements on [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.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/founder24/-kalukaliya/pull/408","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/founder24%2F-kalukaliya/issues/408","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/408/packages"}},{"old_version":"1.42.1","new_version":"1.43.0","update_type":"minor","path":null,"pr_created_at":"2026-06-26T22:12:17.000Z","version_change":"1.42.1 → 1.43.0","issue":{"uuid":"4755430369","node_id":"PR_kwDOTDSek87rJszd","number":25,"state":"closed","title":"chore(deps): bump the python-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-26T23:23:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-26T22:12:17.000Z","updated_at":"2026-06-26T23:24:03.000Z","time_to_close":4297,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":9,"packages":[{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-asyncpg","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-httpx","old_version":"0.63b1","new_version":"0.64b0"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.63b1","new_version":"0.64b0"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 3 updates in the / directory: [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python), [pytest](https://github.com/pytest-dev/pytest) and [ruff](https://github.com/astral-sh/ruff).\n\nUpdates `opentelemetry-api` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp` from 1.42.1 to 1.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eadd_metric_reader\u003c/code\u003e / \u003ccode\u003eremove_metric_reader\u003c/code\u003e public\nAPIs to register / unregister metric readers at runtime.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4863\"\u003e#4863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: add support for configuring metric scope\nlabels\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5123\"\u003e#5123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: Add grpc error details to the log\nmessage that's written when the grpc call fails.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5143\"\u003e#5143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-http-transport\u003c/code\u003e: add\n'opentelemetry-exporter-http-transport' package for HTTP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecomposite/development\u003c/code\u003e samplers support to\ndeclarative file configuration\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-file\u003c/code\u003e: Add OTLP JSON File exporter\nimplementation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003e_resolve_component\u003c/code\u003e shared utility for declarative\nconfig plugin loading, reducing boilerplate in exporter factory functions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add pull metric reader support to declarative file\nconfiguration, including Prometheus metric reader via the\n\u003ccode\u003eprometheus_development\u003c/code\u003e config field\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e: update to use opentelemetry-proto v1.10.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5224\"\u003e#5224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto\u003c/code\u003e: bump maximum supported protobuf version to 7.x.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5251\"\u003e#5251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eServiceInstanceIdResourceDetector\u003c/code\u003e for populating\n\u003ccode\u003eservice.instance.id\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5259\"\u003e#5259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: declarative config loader now recursively converts\nparsed dicts into typed dataclass instances, including nested dataclasses,\nlists of dataclasses, and enum values. End-to-end YAML/JSON → SDK\nconfiguration now works via the factory functions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5269\"\u003e#5269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003econfigure_sdk(config)\u003c/code\u003e to the declarative\nconfiguration API. Single entry point that takes a parsed\n\u003ccode\u003eOpenTelemetryConfiguration\u003c/code\u003e, builds the resource, and applies the\ntracer/meter/logger providers and propagator globally. Honors the top-level\n\u003ccode\u003edisabled\u003c/code\u003e flag.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: the SDK configurator now honors the \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e\nenvironment variable. When set, the SDK loads and applies the referenced\ndeclarative configuration file (YAML or JSON) in place of the env-var-based\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fcbbeb8e4eeb785519c7d2efbe367e8fd79dd0b3\"\u003e\u003ccode\u003efcbbeb8\u003c/code\u003e\u003c/a\u003e [release/v1.43.x-0.64bx] Prepare release 1.43.0/0.64b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5349\"\u003e#5349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b40dcbc8c66ad85ba5b7f346ab657d61800bd6f2\"\u003e\u003ccode\u003eb40dcbc\u003c/code\u003e\u003c/a\u003e opentelemetry-exporter-http-transport: enable entry-point loading of transpor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/10e8577798c94b743bfb2de3ed299fcb34c43898\"\u003e\u003ccode\u003e10e8577\u003c/code\u003e\u003c/a\u003e update to Sphinx to 8.1.3 in order to support Python 3.14 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5278\"\u003e#5278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6ac68952f4593d1582218f29316f6da75315166a\"\u003e\u003ccode\u003e6ac6895\u003c/code\u003e\u003c/a\u003e docs: add declarative configuration guide and example (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5309\"\u003e#5309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/13ad4d54f9bef5ca1a486e042b685276a964429f\"\u003e\u003ccode\u003e13ad4d5\u003c/code\u003e\u003c/a\u003e opentelemetry-api: normalize empty environment propagation names to \u0026quot;_\u0026quot; in En...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6a0ab8420aa07d4f41dd0dc2c1a8a9cad87ecf4c\"\u003e\u003ccode\u003e6a0ab84\u003c/code\u003e\u003c/a\u003e opentelemetry-sdk: merge doesn't need a copy, dict already does this (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5326\"\u003e#5326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/ac7a3df2fb5a3de775c1df3cd2a6c71eb53aec73\"\u003e\u003ccode\u003eac7a3df\u003c/code\u003e\u003c/a\u003e feat(config): support OTEL_CONFIG_FILE in the SDK configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5271\"\u003e#5271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fa75422c5cc4c9a15e973a1f4e704af0319494d7\"\u003e\u003ccode\u003efa75422\u003c/code\u003e\u003c/a\u003e Add support for composite samplers in declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5201\"\u003e#5201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/43f079f5dd6b07c06afe2ed68fd310bad9c38e56\"\u003e\u003ccode\u003e43f079f\u003c/code\u003e\u003c/a\u003e Update json and proto encoder to always accept None type, cleanup code / test...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/53c9d962f4148eb13272f655cd349bc6e9f99729\"\u003e\u003ccode\u003e53c9d96\u003c/code\u003e\u003c/a\u003e chore: cleanup typo found in test (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5324\"\u003e#5324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-fastapi` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-fastapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-asyncpg` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-asyncpg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-httpx` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-httpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-logging` from 0.63b1 to 0.64b0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.43.0/0.64b0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-exceptions\u003c/code\u003e: add instrumentation to emit\nOpenTelemetry logs for uncaught process, thread, and asyncio exceptions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4503\"\u003e#4503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: loosen aiobotocore version\nconstraints to allow for 3.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4601\"\u003e#4601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: add optional \u003ccode\u003einject_trace_context\u003c/code\u003e\nargument for injecting trace context attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4626\"\u003e#4626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-redis\u003c/code\u003e: gracefully handle hook exceptions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4696\"\u003e#4696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry-instrumentation-requests: remove multiple calls to\nsanitize_method\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4719\"\u003e#4719\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e: Remove duplicate query logging in\nSQLCommenter middleware that broke Django's \u003ccode\u003eassertNumQueries\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4367\"\u003e#4367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e: wrap wsgi_app call in try/except to\nprevent active_requests gauge leak\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4433\"\u003e#4433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e: instrument prepared statements\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4529\"\u003e#4529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e,\n\u003ccode\u003eopentelemetry-instrumentation-kafka-python\u003c/code\u003e: fix malformed RST formatting in\nmodule docstrings\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4613\"\u003e#4613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Fix pyodbc DB-API instrumentation\nexamples to wrap \u003ccode\u003econnect\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: reduce cardinality of \u003ccode\u003ehttp.target\u003c/code\u003e\nmetrics attribute with old semantic conventions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4666\"\u003e#4666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: implement proper handling of t-string\nqueries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4697\"\u003e#4697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e: fix \u003ccode\u003eAttributeError\u003c/code\u003e when resolving\nroutes added via \u003ccode\u003einclude_router\u003c/code\u003e on FastAPI 0.137+\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4700\"\u003e#4700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-tornado\u003c/code\u003e: sanitize the request http method in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.1.0 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.1.0...9.1.1\"\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.18 to 0.15.20\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.20\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.20\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.20/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.20/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.20\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.20/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.20/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.20/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.20/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.20/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.20/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.20/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.20/ruff-i686-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.20/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-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.20/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.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.20/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz.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.20\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.19\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport human-readable names when hovering suppression comments and in code actions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26114\"\u003e#26114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFall back to default settings when editor-only settings are invalid (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26244\"\u003e#26244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when inserting text at a notebook cell boundary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26111\"\u003e#26111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Update fix suggestions for \u003ccode\u003e__floor__\u003c/code\u003e, \u003ccode\u003e__trunc__\u003c/code\u003e, \u003ccode\u003e__length_hint__\u003c/code\u003e, and \u003ccode\u003e__matmul__\u003c/code\u003e variants (\u003ccode\u003ePLC2801\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26239\"\u003e#26239\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid allocating when parsing single string literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26200\"\u003e#26200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid reallocating singleton call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26223\"\u003e#26223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily create source files for lint diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26226\"\u003e#26226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize formatter text width and indentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26236\"\u003e#26236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReserve capacity for builtin bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26229\"\u003e#26229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip repeated-key checks for singleton dictionaries (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26228\"\u003e#26228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse ArrayVec for qualified name segments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26224\"\u003e#26224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f82a36b6baf8c0547a17bbde6c0d927ccd45d938\"\u003e\u003ccode\u003ef82a36b\u003c/code\u003e\u003c/a\u003e Bump 0.15.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26376\"\u003e#26376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d\"\u003e\u003ccode\u003eaf32943\u003c/code\u003e\u003c/a\u003e Improve the summarise-ecosystem-results skill (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26378\"\u003e#26378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86\"\u003e\u003ccode\u003e485ebab\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eRUF076\u003c/code\u003e name from schema (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b\"\u003e\u003ccode\u003eef81835\u003c/code\u003e\u003c/a\u003e [ty] Implement rust-analyzer's \u0026quot;Click for full compiler diagnostic\u0026quot; feature (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b\"\u003e\u003ccode\u003e572b31e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26240\"\u003e#26240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9\"\u003e\u003ccode\u003ef703f21\u003c/code\u003e\u003c/a\u003e Allow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e\"\u003e\u003ccode\u003e0d726b2\u003c/code\u003e\u003c/a\u003e [ty] Reuse equality semantics for membership compatibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25955\"\u003e#25955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00\"\u003e\u003ccode\u003edbe6e98\u003c/code\u003e\u003c/a\u003e [ty] Infer definite equality comparison results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26337\"\u003e#26337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0\"\u003e\u003ccode\u003ee700ea3\u003c/code\u003e\u003c/a\u003e [ty] Prove TypedDict structural patterns exhaustive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26285\"\u003e#26285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911\"\u003e\u003ccode\u003e6a0d2ec\u003c/code\u003e\u003c/a\u003e [ty] Widen inferred class-valued instance attributes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26338\"\u003e#26338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.18...0.15.20\"\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/primerhq/primer/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/primerhq%2Fprimer/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"}},{"old_version":"1.40.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-17T22:50:30.000Z","version_change":"1.40.0 → 1.42.1","issue":{"uuid":"4687621346","node_id":"PR_kwDOR0Zg2s7nssfT","number":219,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-24T22:49:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-17T22:50:30.000Z","updated_at":"2026-06-24T22:49:04.000Z","time_to_close":604712,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":19,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.26.0","new_version":"2.43.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"locust-plugins","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/SvenskaSpel/locust-plugins"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 19 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.43.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 12 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.43.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.26.0 to 2.43.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.43.0\u003c/h2\u003e\n\u003ch2\u003e2.43.0 (2026-06-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.42.0...v2.43.0\"\u003ev2.42.0...v2.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/22542358490ef8f31f0d373e17f7b791b3d983ca\"\u003e2254235\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.43.0 (2026-06-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.42.0...v2.43.0\"\u003ev2.42.0...v2.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/22542358490ef8f31f0d373e17f7b791b3d983ca\"\u003e2254235\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\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/openai/openai-python/commit/e20b6b82c145091f0d8412a7e4a9bc5900a40462\"\u003e\u003ccode\u003ee20b6b8\u003c/code\u003e\u003c/a\u003e release: 2.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d354538e8c2618e228c80f1fdc332ee1f70d1f2\"\u003e\u003ccode\u003e4d35453\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2bba15e71817a75e9b8517e09cb244bc144b50d0\"\u003e\u003ccode\u003e2bba15e\u003c/code\u003e\u003c/a\u003e release: 2.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/1ec3e8298982d900d31b486177b5d4cecadcf035\"\u003e\u003ccode\u003e1ec3e82\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/93c2eca17d2d484b95245c849b39f51c6d291478\"\u003e\u003ccode\u003e93c2eca\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b269f88a30fcfbcceea1cc30deb00405db88c5e6\"\u003e\u003ccode\u003eb269f88\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ee821d6b4a59d6b73850640162b6454da434f5f7\"\u003e\u003ccode\u003eee821d6\u003c/code\u003e\u003c/a\u003e feat(api): admin spend_alerts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/60002e574925e84261150f3e01be4bcb53658261\"\u003e\u003ccode\u003e60002e5\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003e\u003ccode\u003ed64d811\u003c/code\u003e\u003c/a\u003e build: Use CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003e\u003ccode\u003ea526ee8\u003c/code\u003e\u003c/a\u003e build: fix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.26.0...v2.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust-plugins` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/releases\"\u003elocust-plugins's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cp\u003eFix --iteration counts again (partially reverting some stuff)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix http status code on jmeter listener report by \u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly count --iterations when we're actually running task functions, not also entire TaskSets by \u003ca href=\"https://github.com/cyberw\"\u003e\u003ccode\u003e@​cyberw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/231\"\u003eSvenskaSpel/locust-plugins#231\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#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/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/d16a309780735dafc488f9ec37eafd4127445a4d\"\u003e\u003ccode\u003ed16a309\u003c/code\u003e\u003c/a\u003e pin old setuptools_scm version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e7adad1f8eb1c5782e4b8a8ed9a02a3e411cbf75\"\u003e\u003ccode\u003ee7adad1\u003c/code\u003e\u003c/a\u003e disable playwright tests for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/3e04c62db49f8cd3d14e3c3461c02d16ffac9119\"\u003e\u003ccode\u003e3e04c62\u003c/code\u003e\u003c/a\u003e register ips and iteration limits on test_start instead of init\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e8180ba7528e529556631f9e0e86c6d0e35ce2b1\"\u003e\u003ccode\u003ee8180ba\u003c/code\u003e\u003c/a\u003e ensure overshoot still stops test for iteration counter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0ff7e1b5e1608a5286d334560eacf7293467aa0a\"\u003e\u003ccode\u003e0ff7e1b\u003c/code\u003e\u003c/a\u003e tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/a8522f3be44b6a2bff731826e085fdfb8581a68a\"\u003e\u003ccode\u003ea8522f3\u003c/code\u003e\u003c/a\u003e gh actions: move timeout setting. stop installing codecov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/b486a07b31c5c9caed5871324b72fa2e524e8fca\"\u003e\u003ccode\u003eb486a07\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/aa58da5230f716ff2397ea18c8ed72227af655a7\"\u003e\u003ccode\u003eaa58da5\u003c/code\u003e\u003c/a\u003e more clear test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0d09d9b501bd591b39e58bbea8182c8a0cb171e5\"\u003e\u003ccode\u003e0d09d9b\u003c/code\u003e\u003c/a\u003e revert to use init event for setting up iteration and ips limits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/18bf2ff13f3febc2ad5c57cc538aff3bb74594d6\"\u003e\u003ccode\u003e18bf2ff\u003c/code\u003e\u003c/a\u003e gh actions: set duration limit as well, in case iteration limiter fails to av...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63b...\n\n_Description has been truncated_","html_url":"https://github.com/V0zz/OTEL_Demo/pull/219","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/V0zz%2FOTEL_Demo/issues/219","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/219/packages"}},{"old_version":"1.39.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-17T14:40:42.000Z","version_change":"1.39.1 → 1.42.1","issue":{"uuid":"4684302882","node_id":"PR_kwDORfLItc7nhsfS","number":267,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T14:40:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-17T14:40:42.000Z","updated_at":"2026-06-18T14:40:16.000Z","time_to_close":86372,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":19,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.24.0","new_version":"2.42.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"locust-plugins","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/SvenskaSpel/locust-plugins"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 19 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.42.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 12 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `5.0.0` | `5.0.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.42.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.24.0 to 2.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.42.0 (2026-06-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.1...v2.42.0\"\u003ev2.41.1...v2.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e admin spend_alerts (\u003ca href=\"https://github.com/openai/openai-python/commit/6134198a488996c4ff6fca4551afd55fb3294fdc\"\u003e6134198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/f337bf43276c880d2daf09a5d7f9fc9a886c4bf2\"\u003ef337bf4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/7015158c3119acf57af6c20903587cef928530a9\"\u003e7015158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003ea526ee8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003ed64d811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\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/openai/openai-python/commit/2bba15e71817a75e9b8517e09cb244bc144b50d0\"\u003e\u003ccode\u003e2bba15e\u003c/code\u003e\u003c/a\u003e release: 2.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/1ec3e8298982d900d31b486177b5d4cecadcf035\"\u003e\u003ccode\u003e1ec3e82\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/93c2eca17d2d484b95245c849b39f51c6d291478\"\u003e\u003ccode\u003e93c2eca\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b269f88a30fcfbcceea1cc30deb00405db88c5e6\"\u003e\u003ccode\u003eb269f88\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ee821d6b4a59d6b73850640162b6454da434f5f7\"\u003e\u003ccode\u003eee821d6\u003c/code\u003e\u003c/a\u003e feat(api): admin spend_alerts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/60002e574925e84261150f3e01be4bcb53658261\"\u003e\u003ccode\u003e60002e5\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d64d811e82aff724397e32d593e50657fee3f905\"\u003e\u003ccode\u003ed64d811\u003c/code\u003e\u003c/a\u003e build: Use CI environment for examples API key (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a526ee813f085318fe3c6923ac3fa10c1cf56420\"\u003e\u003ccode\u003ea526ee8\u003c/code\u003e\u003c/a\u003e build: fix release workflow permissions (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.24.0...v2.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust-plugins` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/releases\"\u003elocust-plugins's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.2...5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cp\u003eFix --iteration counts again (partially reverting some stuff)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.1...5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix http status code on jmeter listener report by \u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly count --iterations when we're actually running task functions, not also entire TaskSets by \u003ca href=\"https://github.com/cyberw\"\u003e\u003ccode\u003e@​cyberw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/231\"\u003eSvenskaSpel/locust-plugins#231\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oleksandr-prykhodko-quickbase\"\u003e\u003ccode\u003e@​oleksandr-prykhodko-quickbase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SvenskaSpel/locust-plugins/pull/229\"\u003eSvenskaSpel/locust-plugins#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/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\"\u003ehttps://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/d16a309780735dafc488f9ec37eafd4127445a4d\"\u003e\u003ccode\u003ed16a309\u003c/code\u003e\u003c/a\u003e pin old setuptools_scm version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e7adad1f8eb1c5782e4b8a8ed9a02a3e411cbf75\"\u003e\u003ccode\u003ee7adad1\u003c/code\u003e\u003c/a\u003e disable playwright tests for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/3e04c62db49f8cd3d14e3c3461c02d16ffac9119\"\u003e\u003ccode\u003e3e04c62\u003c/code\u003e\u003c/a\u003e register ips and iteration limits on test_start instead of init\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/e8180ba7528e529556631f9e0e86c6d0e35ce2b1\"\u003e\u003ccode\u003ee8180ba\u003c/code\u003e\u003c/a\u003e ensure overshoot still stops test for iteration counter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0ff7e1b5e1608a5286d334560eacf7293467aa0a\"\u003e\u003ccode\u003e0ff7e1b\u003c/code\u003e\u003c/a\u003e tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/a8522f3be44b6a2bff731826e085fdfb8581a68a\"\u003e\u003ccode\u003ea8522f3\u003c/code\u003e\u003c/a\u003e gh actions: move timeout setting. stop installing codecov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/b486a07b31c5c9caed5871324b72fa2e524e8fca\"\u003e\u003ccode\u003eb486a07\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/aa58da5230f716ff2397ea18c8ed72227af655a7\"\u003e\u003ccode\u003eaa58da5\u003c/code\u003e\u003c/a\u003e more clear test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/0d09d9b501bd591b39e58bbea8182c8a0cb171e5\"\u003e\u003ccode\u003e0d09d9b\u003c/code\u003e\u003c/a\u003e revert to use init event for setting up iteration and ips limits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/commit/18bf2ff13f3febc2ad5c57cc538aff3bb74594d6\"\u003e\u003ccode\u003e18bf2ff\u003c/code\u003e\u003c/a\u003e gh actions: set duration limit as well, in case iteration limiter fails to av...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SvenskaSpel/locust-plugins/compare/5.0.0...5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetr...\n\n_Description has been truncated_","html_url":"https://github.com/owjoel/is469/pull/267","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/owjoel%2Fis469/issues/267","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/267/packages"}},{"old_version":"1.39.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-12T01:50:01.000Z","version_change":"1.39.1 → 1.42.1","issue":{"uuid":"4645526210","node_id":"PR_kwDOQuIFL87lkUhR","number":296,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-15T01:49:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-12T01:50:01.000Z","updated_at":"2026-06-15T01:49:21.000Z","time_to_close":259159,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"grpcio-health-checking","old_version":"1.71.0","new_version":"1.81.1"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.13.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.13.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib), [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger) and [flask](https://github.com/pallets/flask).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.13.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.1` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.71.0 to 1.81.1\n\nUpdates `openfeature-hooks-opentelemetry` from 0.3.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.13.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.13.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict oper...\n\n_Description has been truncated_","html_url":"https://github.com/AnnieCynthia134/opentelemetry-demo-application/pull/296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnieCynthia134%2Fopentelemetry-demo-application/issues/296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/296/packages"}},{"old_version":"1.40.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-12T00:37:20.000Z","version_change":"1.40.0 → 1.42.1","issue":{"uuid":"4645245138","node_id":"PR_kwDOSJ-KK87ljcGf","number":132,"state":"closed","title":"Bump the pip-production-dependencies group across 3 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-15T00:37:11.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-12T00:37:20.000Z","updated_at":"2026-06-15T00:37:13.000Z","time_to_close":259191,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-semantic-conventions` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-semantic-conventions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990...\n\n_Description has been truncated_","html_url":"https://github.com/honeycombio/ced-opentelemetry-demo-app-academy-courses/pull/132","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/honeycombio%2Fced-opentelemetry-demo-app-academy-courses/issues/132","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/132/packages"}},{"old_version":"1.40.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-11T23:40:00.000Z","version_change":"1.40.0 → 1.42.1","issue":{"uuid":"4644999923","node_id":"PR_kwDORxQaNc7lirLd","number":204,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-12T23:38:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T23:40:00.000Z","updated_at":"2026-06-12T23:38:47.000Z","time_to_close":86326,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":18,"packages":[{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.1"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.26.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 18 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) and [python-json-logger](https://github.com/nhairs/python-json-logger).\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.26.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.1` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.1\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `openai` from 2.26.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.26.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.40.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.61b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https:/...\n\n_Description has been truncated_","html_url":"https://github.com/GuanceDemo/OpenTelemetry_Demo/pull/204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuanceDemo%2FOpenTelemetry_Demo/issues/204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/204/packages"}},{"old_version":"1.39.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-10T20:30:18.000Z","version_change":"1.39.1 → 1.42.1","issue":{"uuid":"4634745208","node_id":"PR_kwDORX-XEs7lB3N7","number":249,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T20:30:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T20:30:18.000Z","updated_at":"2026-06-11T20:30:26.000Z","time_to_close":86406,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.17.0","new_version":"2.41.1","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.17.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger), [flask](https://github.com/pallets/flask) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.17.0` | `2.41.1` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.3.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `openfeature-hooks-opentelemetry` from 0.3.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.17.0 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\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/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.1 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.41.0...v2.41.1\"\u003ev2.41.0...v2.41.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBuild System\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e2a91011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\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/openai/openai-python/commit/71987563c833806bb9854c2f74d430a26e319246\"\u003e\u003ccode\u003e7198756\u003c/code\u003e\u003c/a\u003e release: 2.41.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/3842a5ea01e8ecb7d6b159b9236c0c60ceff5de3\"\u003e\u003ccode\u003e3842a5e\u003c/code\u003e\u003c/a\u003e ci: use PyPI trusted publishing (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2a91011abc21032db9566b98068afefb5fbb9b24\"\u003e\u003ccode\u003e2a91011\u003c/code\u003e\u003c/a\u003e build: Remove scheduled release workflow trigger (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.17.0...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen seriali...\n\n_Description has been truncated_","html_url":"https://github.com/RANJITHKUMARJN/opentelemetrymain/pull/249","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RANJITHKUMARJN%2Fopentelemetrymain/issues/249","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/249/packages"}},{"old_version":"1.41.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-09T03:23:25.000Z","version_change":"1.41.1 → 1.42.1","issue":{"uuid":"4618496313","node_id":"PR_kwDOSbI0jM7kMYwb","number":43,"state":"closed","title":"chore(deps): bump the pip-production-dependencies group across 5 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-16T03:22:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-09T03:23:25.000Z","updated_at":"2026-06-16T03:22:16.000Z","time_to_close":604729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"openai","old_version":"2.34.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.34.0` | `2.41.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 1 update in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 10 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.34.0` | `2.41.0` |\n\nBumps the pip-production-dependencies group with 5 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.34.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.34.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/jaykay9999/mstry/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaykay9999%2Fmstry/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"1.41.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-09T03:22:01.000Z","version_change":"1.41.1 → 1.42.1","issue":{"uuid":"4618488832","node_id":"PR_kwDOSU0Q9c7kMXSQ","number":48,"state":"closed","title":"chore(deps): bump the pip-production-dependencies group across 5 directories with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-16T03:22:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-09T03:22:01.000Z","updated_at":"2026-06-16T03:22:30.000Z","time_to_close":604827,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-production-dependencies","update_count":15,"packages":[{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"openai","old_version":"2.33.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.62b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 15 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.33.0` | `2.41.0` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 1 update in the /src/llm directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 10 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.62b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [openai](https://github.com/openai/openai-python) | `2.33.0` | `2.41.0` |\n\nBumps the pip-production-dependencies group with 5 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.62b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.33.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.33.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-system-metrics` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-system-metrics's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-urllib3` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-urllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/sanjaycloudin/devops-demo/pull/48","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaycloudin%2Fdevops-demo/issues/48","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/48/packages"}},{"old_version":"1.41.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-07T22:11:12.000Z","version_change":"1.41.0 → 1.42.1","issue":{"uuid":"4608885696","node_id":"PR_kwDORQ8Eq87jsrVd","number":87,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 51 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-07T22:11:12.000Z","updated_at":"2026-06-08T01:04:54.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":51,"packages":[{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"transformers","old_version":"5.7.0","new_version":"5.10.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"openai","old_version":"2.32.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.96.0","new_version":"0.107.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.8.4","new_version":"0.8.9","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llama-index-core","old_version":"0.14.20","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.1","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.28","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"elevenlabs","old_version":"2.43.0","new_version":"2.51.0","repository_url":"https://github.com/elevenlabs/elevenlabs-python"},{"name":"onnxruntime","old_version":"1.22.0","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"onnxruntime-gpu","old_version":"1.24.4","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-tools","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"mujoco","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/google-deepmind/mujoco"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.18.0","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"polar-sdk","old_version":"0.31.3","new_version":"0.31.5","repository_url":"https://github.com/polarsource/polar-python"},{"name":"langgraph","old_version":"1.1.6","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"haystack-ai","old_version":"2.27.0","new_version":"2.30.0","repository_url":"https://github.com/deepset-ai/haystack"},{"name":"litellm","old_version":"1.86.2","new_version":"1.88.0","repository_url":"https://github.com/BerriAI/litellm"},{"name":"mkdocs-jupyter","old_version":"0.26.2","new_version":"0.26.3","repository_url":"https://github.com/danielfrg/mkdocs-jupyter"},{"name":"opentelemetry-api","old_version":"1.41.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"langfuse","old_version":"4.3.1","new_version":"4.7.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"gradio","old_version":"6.13.0","new_version":"6.16.0","repository_url":"https://github.com/gradio-app/gradio"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.13.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"beautifulsoup4","old_version":"4.14.3","new_version":"4.15.0"},{"name":"boto3","old_version":"1.42.90","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"notion-client","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.197.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"google-cloud-aiplatform","old_version":"1.149.0","new_version":"1.156.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"hypothesis","old_version":"6.151.10","new_version":"6.155.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.5.20","repository_url":"https://github.com/certifi/python-certifi"},{"name":"huggingface-hub","old_version":"1.12.0","new_version":"1.18.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.15","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"}],"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\nBumps the python-minor-patch group with 50 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.7.0` | `5.10.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.96.0` | `0.107.1` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.4` | `0.8.9` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.20` | `0.14.22` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.44.0` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.1` | `2.13.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.28` | `0.0.32` |\n| [elevenlabs](https://github.com/elevenlabs/elevenlabs-python) | `2.43.0` | `2.51.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.0` | `1.26.0` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.24.4` | `1.26.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [grpcio-tools](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [mujoco](https://github.com/google-deepmind/mujoco) | `3.8.0` | `3.9.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.9.0` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.18.0` |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [polar-sdk](https://github.com/polarsource/polar-python) | `0.31.3` | `0.31.5` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.6` | `1.2.4` |\n| [haystack-ai](https://github.com/deepset-ai/haystack) | `2.27.0` | `2.30.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.86.2` | `1.88.0` |\n| [mkdocs-jupyter](https://github.com/danielfrg/mkdocs-jupyter) | `0.26.2` | `0.26.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.1` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.3.1` | `4.7.1` |\n| [gradio](https://github.com/gradio-app/gradio) | `6.13.0` | `6.16.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.13.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.90` | `1.43.24` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `3.0.0` | `3.1.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.197.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.149.0` | `1.156.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.10` | `6.155.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [build](https://github.com/pypa/build) | `1.4.3` | `1.5.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.6.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.5.20` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.12.0` | `1.18.0` |\n| [idna](https://github.com/kjd/idna) | `3.15` | `3.18` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n\n\nUpdates `numpy` from 2.4.4 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.4.6\"\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 `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.7.0 to 5.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.10.2\u003c/h1\u003e\n\u003cp\u003eThere was a big bug in the model conversion of models related to clip, this affected models like sam3 and others. Please make sure to update :pray:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conversion for clip models by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\"\u003ehttps://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003eRelease v5.10.1\u003c/h1\u003e\n\u003cp\u003ev5.10.0 was yanked as we publish on a corrupted branch. Sorry everyone, this happens when we rush a release!!!\u003c/p\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eGemma4 unified+ Gemma4 MTP\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 12B Unified is an \u003cstrong\u003eencoder-free\u003c/strong\u003e multimodal model with pretrained and instruction-tuned variants. Unlike \u003ca href=\"https://github.com/huggingface/transformers/blob/HEAD/gemma4\"\u003estandard Gemma 4\u003c/a\u003e, which uses dedicated encoder towers, Gemma 4 12B Unified projects raw inputs directly into the language model's embedding space through lightweight linear pipelines. This results in a simpler architecture while maintaining strong multimodal performance.\u003c/p\u003e\n\u003cp\u003eKey differences from standard Gemma 4:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo Vision Tower\u003c/strong\u003e: Raw pixel patches are projected directly into LM space via a \u003ccode\u003eDense + LayerNorm\u003c/code\u003e pipeline with factorized 2D positional embeddings, replacing the vision encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo Audio Tower\u003c/strong\u003e: Raw 16 kHz waveform samples are chunked into fixed-length frames and projected through a simple \u003ccode\u003eRMSNorm → Linear\u003c/code\u003e pipeline, replacing the mel spectrogram + Conformer encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShared Multimodal Pipeline\u003c/strong\u003e: Both vision and audio use the same \u003ccode\u003eGemma4UnifiedMultimodalEmbedder\u003c/code\u003e (RMSNorm → Linear) for the final projection to text hidden space.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can find the original Gemma 4 12B Unified checkpoints under the \u003ca href=\"https://huggingface.co/collections/google/gemma-4\"\u003eGemma 4\u003c/a\u003e release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ewho needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e) by \u003ca href=\"https://github.com/douglas-reid\"\u003e\u003ccode\u003e@​douglas-reid\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sgerrard\"\u003e\u003ccode\u003e@​sgerrard\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/molbap\"\u003e\u003ccode\u003e@​molbap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSapiens2\u003c/h3\u003e\n\u003cp\u003eSapiens2 is a family of high-resolution vision transformers pretrained on ~1 billion curated human images, designed for human-centric computer vision tasks including pose estimation, body-part segmentation, surface normal estimation, and pointmap estimation. The models scale from 0.4B to 5B parameters and train at native 1K resolution, with hierarchical 4K variants for extended spatial reasoning. Sapiens2 achieves substantial improvements over its predecessor with +4 mAP in pose estimation, +24.3 mIoU in body-part segmentation, and 45.6% error reduction in normal estimation.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/sapiens2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2604.21681\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45919\"\u003e#45919\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeepSeek-OCR-2\u003c/h3\u003e\n\u003cp\u003eDeepSeek-OCR-2 is an OCR-specialized vision-language model built on a distinctive architecture that combines a SAM ViT-B vision encoder with a Qwen2 hybrid attention encoder, connected through an MLP projector to a DeepSeek-V2 Mixture-of-Experts (MoE) language model. The model features a hybrid attention mechanism that applies bidirectional attention over image tokens and causal attention over query tokens, enabling efficient and accurate document understanding. It supports both plain OCR tasks and grounding capabilities with coordinate-aware output for document conversion to markdown format.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_ocr2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Deepseek-OCR-2 model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45075\"\u003e#45075\u003c/a\u003e) by \u003ca href=\"https://github.com/thisisiron\"\u003e\u003ccode\u003e@​thisisiron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45075\"\u003e#45075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMellum\u003c/h3\u003e\n\u003cp\u003eMellum is a code-focused Mixture-of-Experts language model developed by JetBrains. It is derived from the Qwen3-MoE architecture with per-layer-type RoPE and interleaved sliding window attention. The model has 12B total parameters with 2.5B active parameters per token, using 64 routed experts with 8 activated per token across 28 layers.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/mellum\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add support for JetBrains' \u003ccode\u003eMellum\u003c/code\u003e v2 code generation model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46112\"\u003e#46112\u003c/a\u003e) by \u003ca href=\"https://github.com/shadeMe\"\u003e\u003ccode\u003e@​shadeMe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46112\"\u003e#46112\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/huggingface/transformers/commit/0dad7b822255a0ae261ec45ae937371e859ffd1a\"\u003e\u003ccode\u003e0dad7b8\u003c/code\u003e\u003c/a\u003e v5.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8a4ffee847b90a732a1febefeca5180fffd5596f\"\u003e\u003ccode\u003e8a4ffee\u003c/code\u003e\u003c/a\u003e Fix conversion for clip models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/90c3ae54d448d4906b6167317ea5a7f5d48a232d\"\u003e\u003ccode\u003e90c3ae5\u003c/code\u003e\u003c/a\u003e Patch because we had to yank 5.10 because the release branch was not up to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0bd94b37db639d8f29a094dce2fde06f86af8968\"\u003e\u003ccode\u003e0bd94b3\u003c/code\u003e\u003c/a\u003e v5.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1423d22f7a3b62e8c70ad67b58ec25cd9b675897\"\u003e\u003ccode\u003e1423d22\u003c/code\u003e\u003c/a\u003e who needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/50eb20a24f9dd512e6770072f422e4b86ca3cd98\"\u003e\u003ccode\u003e50eb20a\u003c/code\u003e\u003c/a\u003e Fix dsv4 dequant + tp/ep (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46378\"\u003e#46378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/74464e8c49c91b574c30cc3cb3c5a44000237299\"\u003e\u003ccode\u003e74464e8\u003c/code\u003e\u003c/a\u003e Fix wrong changes produced by style/repo. check bot (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46371\"\u003e#46371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1b8ec344fb6c277235fc76c37e7a5c156a1f0ddc\"\u003e\u003ccode\u003e1b8ec34\u003c/code\u003e\u003c/a\u003e Fix path traversal when saving Bark voice preset embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46237\"\u003e#46237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e820678256f22e7647e39e8b7ed040fa81b7b872\"\u003e\u003ccode\u003ee820678\u003c/code\u003e\u003c/a\u003e Add Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/595721c44cb14db37fa504903e2edd5e9f0eba43\"\u003e\u003ccode\u003e595721c\u003c/code\u003e\u003c/a\u003e Pass library_name/version to Hub calls via a shared HfApi (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46318\"\u003e#46318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.7.0...v5.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.96.0 to 0.107.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.107.1\u003c/h2\u003e\n\u003ch2\u003e0.107.1 (2026-06-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.107.0...v0.107.1\"\u003ev0.107.0...v0.107.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efoundry:\u003c/strong\u003e send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/13381413d22ad14d85e66836c67cc8a13bd2b7bd\"\u003e1338141\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.107.0\u003c/h2\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.106.0\u003c/h2\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.105.2\u003c/h2\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.107.1 (2026-06-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.107.0...v0.107.1\"\u003ev0.107.0...v0.107.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efoundry:\u003c/strong\u003e send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/13381413d22ad14d85e66836c67cc8a13bd2b7bd\"\u003e1338141\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/260e687082dfe2d9b7f20199dc8ab7c9e90ae1de\"\u003e\u003ccode\u003e260e687\u003c/code\u003e\u003c/a\u003e release: 0.107.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49c5395b93f5f38a299b88228964b8267394b9d1\"\u003e\u003ccode\u003e49c5395\u003c/code\u003e\u003c/a\u003e fix(foundry): send x-api-key header for API-key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4ceca722bedbd923671365f1a36f86d09fbec657\"\u003e\u003ccode\u003e4ceca72\u003c/code\u003e\u003c/a\u003e release: 0.107.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3a6f9d9c217bdb504ddd229618149ab7e8033ad3\"\u003e\u003ccode\u003e3a6f9d9\u003c/code\u003e\u003c/a\u003e feat(api): small updates to Managed Agents types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6a70c9f72b16b04348564c5b92961a82ebe4b7da\"\u003e\u003ccode\u003e6a70c9f\u003c/code\u003e\u003c/a\u003e release: 0.106.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8fa41c8acf6885fd8b7a0a67f705bbb9d3058672\"\u003e\u003ccode\u003e8fa41c8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f553254640b45aecef37df0000da68dc2bcb9c5\"\u003e\u003ccode\u003e1f55325\u003c/code\u003e\u003c/a\u003e Don't leak ANTHROPIC_API_KEY to the Foundry endpoint (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/18\"\u003e#18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a94498c6aa3dd4e237ed72dacdd26336bbd7d9fc\"\u003e\u003ccode\u003ea94498c\u003c/code\u003e\u003c/a\u003e fix(client): make Foundry client copy() and with_options() work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/907d849f8dfec50dfeda06b5cdde0ee268f9b7f9\"\u003e\u003ccode\u003e907d849\u003c/code\u003e\u003c/a\u003e chore(internal): fix artifact url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9676a5d0d40162a385001f60aa136f97b2718309\"\u003e\u003ccode\u003e9676a5d\u003c/code\u003e\u003c/a\u003e docs: point security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.107.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.4.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.4.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\nfix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\ndocs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\nrelease(anthropic): 1.4.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37757\"\u003e#37757\u003c/a\u003e)\nchore(core): bump \u003ccode\u003euuid-utils\u003c/code\u003e to 0.16.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37699\"\u003e#37699\u003c/a\u003e)\nchore(infra): bump \u003ccode\u003elangchain-tests\u003c/code\u003e floor to 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37610\"\u003e#37610\u003c/a\u003e)\nrelease(standard-tests): 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37609\"\u003e#37609\u003c/a\u003e)\nchore: bump idna from 3.11 to 3.15 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37539\"\u003e#37539\u003c/a\u003e)\nci(infra): harden Dependabot version-bound preservation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37510\"\u003e#37510\u003c/a\u003e)\nhotfix: bump lockfiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37508\"\u003e#37508\u003c/a\u003e)\ndocs(core): note override for \u003ccode\u003e_get_ls_params\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37503\"\u003e#37503\u003c/a\u003e)\nchore(core,langchain,openai): refresh stale OpenAI model references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37487\"\u003e#37487\u003c/a\u003e)\nchore: bump langsmith from 0.7.31 to 0.8.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37395\"\u003e#37395\u003c/a\u003e)\nfix(core): accept \u003ccode\u003eSerializable\u003c/code\u003e constructor-envelope wire shape in \u003ccode\u003e_convert_to_message\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37456\"\u003e#37456\u003c/a\u003e)\nfix(core): preserve chunk \u003ccode\u003eadditional_kwargs\u003c/code\u003e across v3 stream assembly (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37435\"\u003e#37435\u003c/a\u003e)\nfix(core): preserve reasoning blocks alongside tool_call in v3 stream (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37434\"\u003e#37434\u003c/a\u003e)\nchore: bump jupyter-server from 2.17.0 to 2.18.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37354\"\u003e#37354\u003c/a\u003e)\nchore: bump mistune from 3.1.4 to 3.2.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37353\"\u003e#37353\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/langchain-ai/langchain/commit/a401351e12b9a3e1670314adf2f7bbcf8811903c\"\u003e\u003ccode\u003ea401351\u003c/code\u003e\u003c/a\u003e release(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/053c368ba438ca077f1348147fadc5dad16d6898\"\u003e\u003ccode\u003e053c368\u003c/code\u003e\u003c/a\u003e fix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0993edba86014788827144c175499755ec5b9f55\"\u003e\u003ccode\u003e0993edb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37916\"\u003e#37916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/6f7c8f54454ae45b07ca274cbfbb0afb8cef9041\"\u003e\u003ccode\u003e6f7c8f5\u003c/code\u003e\u003c/a\u003e chore: bump starlette from 0.49.1 to 1.0.1 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37899\"\u003e#37899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/586bcd46a17be1eafc61127460d766b2a0611db3\"\u003e\u003ccode\u003e586bcd4\u003c/code\u003e\u003c/a\u003e docs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9eab5237ccf7878648b2d33108a7f7e15331c452\"\u003e\u003ccode\u003e9eab523\u003c/code\u003e\u003c/a\u003e chore: bump requests from 2.34.0 to 2.34.2 in /libs/partners/xai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37903\"\u003e#37903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/be2e8f70bc472354f23e9f62519427dd2de7d332\"\u003e\u003ccode\u003ebe2e8f7\u003c/code\u003e\u003c/a\u003e ci(infra): add \u003ccode\u003eexclude\u003c/code\u003e input to skip libs in scheduled integration tests (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3b999176c84c1236e1f6fbaa5194782360e82264\"\u003e\u003ccode\u003e3b99917\u003c/code\u003e\u003c/a\u003e test(langchain,partners): disable pytest-benchmark under xdist to silence `Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/34af59c1a69c403d7b34d0bbd9ceffd287e3b0ed\"\u003e\u003ccode\u003e34af59c\u003c/code\u003e\u003c/a\u003e fix(partners): cap aiohttp below 3.14 for vcrpy compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37898\"\u003e#37898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/414d7b8e94fca5102e87a1f7a6c70e32622a85b9\"\u003e\u003ccode\u003e414d7b8\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37895\"\u003e#37895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.0...langchain-core==1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langsmith` from 0.8.4 to 0.8.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langsmith-sdk/releases\"\u003elangsmith's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(sandbox): add JS Dockerfile snapshots by \u003ca href=\"https://github.com/langchain-infra\"\u003e\u003ccode\u003e@​langchain-infra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951\"\u003elangchain-ai/langsmith-sdk#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/langchain-ai/langsmith-sdk/pull/2931\"\u003elangchain-ai/langsmith-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump websockets from 15.0.1 to 16.0 in /python 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/langchain-ai/langsmith-sdk/pull/2811\"\u003elangchain-ai/langsmith-sdk#2811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update myst-parser requirement from \u0026gt;=3 to \u0026gt;=4.0.1 in /python 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/langchain-ai/langsmith-sdk/pull/2841\"\u003elangchain-ai/langsmith-sdk#2841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/langchain-ai/langsmith-sdk/pull/2934\"\u003elangchain-ai/langsmith-sdk#2934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump typescript from 5.9.3 to 6.0.3 in /js 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/langchain-ai/langsmith-sdk/pull/2839\"\u003elangchain-ai/langsmith-sdk#2839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python 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/langchain-ai/langsmith-sdk/pull/2960\"\u003elangchain-ai/langsmith-sdk#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python 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/langchain-ai/langsmith-sdk/pull/2961\"\u003elangchain-ai/langsmith-sdk#2961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/langchain-ai/langsmith-sdk/pull/2958\"\u003elangchain-ai/langsmith-sdk#2958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ...\n\n_Description has been truncated_","html_url":"https://github.com/anulum/director-ai/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anulum%2Fdirector-ai/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"}},{"old_version":"1.41.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-07T11:09:48.000Z","version_change":"1.41.0 → 1.42.1","issue":{"uuid":"4607089172","node_id":"PR_kwDORQ8Eq87jnIhL","number":77,"state":"closed","title":"chore(deps): bump the python-minor-patch group with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":"2026-06-07T22:06:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-07T11:09:48.000Z","updated_at":"2026-06-07T22:08:20.000Z","time_to_close":39429,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":50,"packages":[{"name":"numpy","old_version":"2.4.4","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"transformers","old_version":"5.7.0","new_version":"5.10.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"openai","old_version":"2.32.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.96.0","new_version":"0.107.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.8.4","new_version":"0.8.9","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llama-index-core","old_version":"0.14.20","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.1","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-multipart","old_version":"0.0.28","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"elevenlabs","old_version":"2.43.0","new_version":"2.51.0","repository_url":"https://github.com/elevenlabs/elevenlabs-python"},{"name":"onnxruntime","old_version":"1.22.0","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"onnxruntime-gpu","old_version":"1.24.4","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-tools","old_version":"1.78.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc"},{"name":"mujoco","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/google-deepmind/mujoco"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"weaviate-client","old_version":"4.20.5","new_version":"4.16.2","repository_url":"https://github.com/weaviate/weaviate-python-client"},{"name":"qdrant-client","old_version":"1.17.1","new_version":"1.18.0","repository_url":"https://github.com/qdrant/qdrant-client"},{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"polar-sdk","old_version":"0.31.3","new_version":"0.31.5","repository_url":"https://github.com/polarsource/polar-python"},{"name":"langgraph","old_version":"1.1.6","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"haystack-ai","old_version":"2.27.0","new_version":"2.30.0","repository_url":"https://github.com/deepset-ai/haystack"},{"name":"litellm","old_version":"1.86.2","new_version":"1.88.0","repository_url":"https://github.com/BerriAI/litellm"},{"name":"mkdocs-jupyter","old_version":"0.26.2","new_version":"0.26.3","repository_url":"https://github.com/danielfrg/mkdocs-jupyter"},{"name":"opentelemetry-api","old_version":"1.41.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"langfuse","old_version":"4.3.1","new_version":"4.7.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"gradio","old_version":"6.13.0","new_version":"6.16.0","repository_url":"https://github.com/gradio-app/gradio"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.13.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"boto3","old_version":"1.42.90","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"notion-client","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-python-client","old_version":"2.194.0","new_version":"2.197.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"google-cloud-aiplatform","old_version":"1.149.0","new_version":"1.156.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"hypothesis","old_version":"6.151.10","new_version":"6.155.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.5.20","repository_url":"https://github.com/certifi/python-certifi"},{"name":"huggingface-hub","old_version":"1.12.0","new_version":"1.18.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.15","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 50 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.7.0` | `5.10.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.96.0` | `0.107.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.4` | `0.8.9` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.20` | `0.14.22` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.44.0` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.1` | `2.13.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.28` | `0.0.32` |\n| [elevenlabs](https://github.com/elevenlabs/elevenlabs-python) | `2.43.0` | `2.51.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.0` | `1.26.0` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.24.4` | `1.26.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [grpcio-tools](https://github.com/grpc/grpc) | `1.78.0` | `1.81.0` |\n| [mujoco](https://github.com/google-deepmind/mujoco) | `3.8.0` | `3.9.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.9.0` |\n| [weaviate-client](https://github.com/weaviate/weaviate-python-client) | `4.20.5` | `4.16.2` |\n| [qdrant-client](https://github.com/qdrant/qdrant-client) | `1.17.1` | `1.18.0` |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [polar-sdk](https://github.com/polarsource/polar-python) | `0.31.3` | `0.31.5` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.6` | `1.2.4` |\n| [haystack-ai](https://github.com/deepset-ai/haystack) | `2.27.0` | `2.30.0` |\n| [litellm](https://github.com/BerriAI/litellm) | `1.86.2` | `1.88.0` |\n| [mkdocs-jupyter](https://github.com/danielfrg/mkdocs-jupyter) | `0.26.2` | `0.26.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.1` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.3.1` | `4.7.1` |\n| [gradio](https://github.com/gradio-app/gradio) | `6.13.0` | `6.16.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.13.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.90` | `1.43.24` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `3.0.0` | `3.1.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.194.0` | `2.197.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.149.0` | `1.156.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.10` | `6.155.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [build](https://github.com/pypa/build) | `1.4.3` | `1.5.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.6.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.5.20` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.12.0` | `1.18.0` |\n| [idna](https://github.com/kjd/idna) | `3.15` | `3.18` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n\nUpdates `numpy` from 2.4.4 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.4...v2.4.6\"\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 `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.7.0 to 5.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.10.2\u003c/h1\u003e\n\u003cp\u003eThere was a big bug in the model conversion of models related to clip, this affected models like sam3 and others. Please make sure to update :pray:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conversion for clip models by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\"\u003ehttps://github.com/huggingface/transformers/compare/v5.10.1...v5.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003eRelease v5.10.1\u003c/h1\u003e\n\u003cp\u003ev5.10.0 was yanked as we publish on a corrupted branch. Sorry everyone, this happens when we rush a release!!!\u003c/p\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eGemma4 unified+ Gemma4 MTP\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 12B Unified is an \u003cstrong\u003eencoder-free\u003c/strong\u003e multimodal model with pretrained and instruction-tuned variants. Unlike \u003ca href=\"https://github.com/huggingface/transformers/blob/HEAD/gemma4\"\u003estandard Gemma 4\u003c/a\u003e, which uses dedicated encoder towers, Gemma 4 12B Unified projects raw inputs directly into the language model's embedding space through lightweight linear pipelines. This results in a simpler architecture while maintaining strong multimodal performance.\u003c/p\u003e\n\u003cp\u003eKey differences from standard Gemma 4:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo Vision Tower\u003c/strong\u003e: Raw pixel patches are projected directly into LM space via a \u003ccode\u003eDense + LayerNorm\u003c/code\u003e pipeline with factorized 2D positional embeddings, replacing the vision encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo Audio Tower\u003c/strong\u003e: Raw 16 kHz waveform samples are chunked into fixed-length frames and projected through a simple \u003ccode\u003eRMSNorm → Linear\u003c/code\u003e pipeline, replacing the mel spectrogram + Conformer encoder.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShared Multimodal Pipeline\u003c/strong\u003e: Both vision and audio use the same \u003ccode\u003eGemma4UnifiedMultimodalEmbedder\u003c/code\u003e (RMSNorm → Linear) for the final projection to text hidden space.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can find the original Gemma 4 12B Unified checkpoints under the \u003ca href=\"https://huggingface.co/collections/google/gemma-4\"\u003eGemma 4\u003c/a\u003e release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ewho needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e) by \u003ca href=\"https://github.com/douglas-reid\"\u003e\u003ccode\u003e@​douglas-reid\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sgerrard\"\u003e\u003ccode\u003e@​sgerrard\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/molbap\"\u003e\u003ccode\u003e@​molbap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSapiens2\u003c/h3\u003e\n\u003cp\u003eSapiens2 is a family of high-resolution vision transformers pretrained on ~1 billion curated human images, designed for human-centric computer vision tasks including pose estimation, body-part segmentation, surface normal estimation, and pointmap estimation. The models scale from 0.4B to 5B parameters and train at native 1K resolution, with hierarchical 4K variants for extended spatial reasoning. Sapiens2 achieves substantial improvements over its predecessor with +4 mAP in pose estimation, +24.3 mIoU in body-part segmentation, and 45.6% error reduction in normal estimation.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/sapiens2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2604.21681\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45919\"\u003e#45919\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeepSeek-OCR-2\u003c/h3\u003e\n\u003cp\u003eDeepSeek-OCR-2 is an OCR-specialized vision-language model built on a distinctive architecture that combines a SAM ViT-B vision encoder with a Qwen2 hybrid attention encoder, connected through an MLP projector to a DeepSeek-V2 Mixture-of-Experts (MoE) language model. The model features a hybrid attention mechanism that applies bidirectional attention over image tokens and causal attention over query tokens, enabling efficient and accurate document understanding. It supports both plain OCR tasks and grounding capabilities with coordinate-aware output for document conversion to markdown format.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_ocr2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Deepseek-OCR-2 model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45075\"\u003e#45075\u003c/a\u003e) by \u003ca href=\"https://github.com/thisisiron\"\u003e\u003ccode\u003e@​thisisiron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45075\"\u003e#45075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMellum\u003c/h3\u003e\n\u003cp\u003eMellum is a code-focused Mixture-of-Experts language model developed by JetBrains. It is derived from the Qwen3-MoE architecture with per-layer-type RoPE and interleaved sliding window attention. The model has 12B total parameters with 2.5B active parameters per token, using 64 routed experts with 8 activated per token across 28 layers.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/mellum\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add support for JetBrains' \u003ccode\u003eMellum\u003c/code\u003e v2 code generation model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46112\"\u003e#46112\u003c/a\u003e) by \u003ca href=\"https://github.com/shadeMe\"\u003e\u003ccode\u003e@​shadeMe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46112\"\u003e#46112\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/huggingface/transformers/commit/0dad7b822255a0ae261ec45ae937371e859ffd1a\"\u003e\u003ccode\u003e0dad7b8\u003c/code\u003e\u003c/a\u003e v5.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/8a4ffee847b90a732a1febefeca5180fffd5596f\"\u003e\u003ccode\u003e8a4ffee\u003c/code\u003e\u003c/a\u003e Fix conversion for clip models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46406\"\u003e#46406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/90c3ae54d448d4906b6167317ea5a7f5d48a232d\"\u003e\u003ccode\u003e90c3ae5\u003c/code\u003e\u003c/a\u003e Patch because we had to yank 5.10 because the release branch was not up to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0bd94b37db639d8f29a094dce2fde06f86af8968\"\u003e\u003ccode\u003e0bd94b3\u003c/code\u003e\u003c/a\u003e v5.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1423d22f7a3b62e8c70ad67b58ec25cd9b675897\"\u003e\u003ccode\u003e1423d22\u003c/code\u003e\u003c/a\u003e who needs encoders? (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46385\"\u003e#46385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/50eb20a24f9dd512e6770072f422e4b86ca3cd98\"\u003e\u003ccode\u003e50eb20a\u003c/code\u003e\u003c/a\u003e Fix dsv4 dequant + tp/ep (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46378\"\u003e#46378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/74464e8c49c91b574c30cc3cb3c5a44000237299\"\u003e\u003ccode\u003e74464e8\u003c/code\u003e\u003c/a\u003e Fix wrong changes produced by style/repo. check bot (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46371\"\u003e#46371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/1b8ec344fb6c277235fc76c37e7a5c156a1f0ddc\"\u003e\u003ccode\u003e1b8ec34\u003c/code\u003e\u003c/a\u003e Fix path traversal when saving Bark voice preset embeddings (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46237\"\u003e#46237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e820678256f22e7647e39e8b7ed040fa81b7b872\"\u003e\u003ccode\u003ee820678\u003c/code\u003e\u003c/a\u003e Add Sapiens2 Model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45919\"\u003e#45919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/595721c44cb14db37fa504903e2edd5e9f0eba43\"\u003e\u003ccode\u003e595721c\u003c/code\u003e\u003c/a\u003e Pass library_name/version to Hub calls via a shared HfApi (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46318\"\u003e#46318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.7.0...v5.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.96.0 to 0.107.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.107.0\u003c/h2\u003e\n\u003ch2\u003e0.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.106.0\u003c/h2\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.105.2\u003c/h2\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.105.1\u003c/h2\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e use Trusted Publishing for PyPI releases (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d04fc52d2dd1f88e22808de2c53b0d66913631f\"\u003e1d04fc5\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/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.107.0 (2026-06-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.106.0...v0.107.0\"\u003ev0.106.0...v0.107.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e small updates to Managed Agents types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72923f986f808597f86482a7eae4fba9a791e6ae\"\u003e72923f9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.106.0 (2026-06-05)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.106.0\"\u003ev0.105.2...v0.106.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 Claude Opus 4.1 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/85068cc4cb42feecb80a378942cec71e1baa8dcf\"\u003e85068cc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e make Foundry client copy() and with_options() work (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/94146acdc1c6f66f187d5a42e4afbb911e692fe8\"\u003e94146ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etransform schema:\u003c/strong\u003e preserve $defs when schema root is a $ref (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1642\"\u003e#1642\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc58e06b78407b447c50dfea109c6fb300f4b97d\"\u003efc58e06\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix artifact url (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a6ed0c4124d29989a568a27293dadf66e7ebcd6f\"\u003ea6ed0c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e fix branch names (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b0337074f0bbab47bf7f5a2b76b4d240cff719a\"\u003e3b03370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update private repo name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dbcb05706f1865afeee62fb06e400f5c4bf619e\"\u003e7dbcb05\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epoint security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80f2c97b8e9534f9879945de11c11aba00cf8704\"\u003e80f2c97\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.2 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.1...v0.105.2\"\u003ev0.105.1...v0.105.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.105.1 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.0...v0.105.1\"\u003ev0.105.0...v0.105.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e use Trusted Publishing for PyPI releases (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d04fc52d2dd1f88e22808de2c53b0d66913631f\"\u003e1d04fc5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.105.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.104.1...v0.105.0\"\u003ev0.104.1...v0.105.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4ceca722bedbd923671365f1a36f86d09fbec657\"\u003e\u003ccode\u003e4ceca72\u003c/code\u003e\u003c/a\u003e release: 0.107.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3a6f9d9c217bdb504ddd229618149ab7e8033ad3\"\u003e\u003ccode\u003e3a6f9d9\u003c/code\u003e\u003c/a\u003e feat(api): small updates to Managed Agents types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6a70c9f72b16b04348564c5b92961a82ebe4b7da\"\u003e\u003ccode\u003e6a70c9f\u003c/code\u003e\u003c/a\u003e release: 0.106.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8fa41c8acf6885fd8b7a0a67f705bbb9d3058672\"\u003e\u003ccode\u003e8fa41c8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f553254640b45aecef37df0000da68dc2bcb9c5\"\u003e\u003ccode\u003e1f55325\u003c/code\u003e\u003c/a\u003e Don't leak ANTHROPIC_API_KEY to the Foundry endpoint (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/18\"\u003e#18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a94498c6aa3dd4e237ed72dacdd26336bbd7d9fc\"\u003e\u003ccode\u003ea94498c\u003c/code\u003e\u003c/a\u003e fix(client): make Foundry client copy() and with_options() work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/907d849f8dfec50dfeda06b5cdde0ee268f9b7f9\"\u003e\u003ccode\u003e907d849\u003c/code\u003e\u003c/a\u003e chore(internal): fix artifact url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9676a5d0d40162a385001f60aa136f97b2718309\"\u003e\u003ccode\u003e9676a5d\u003c/code\u003e\u003c/a\u003e docs: point security reports to Anthropic's HackerOne program (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/80c95b8cc47e2e0600be68dda707b3a7231929c8\"\u003e\u003ccode\u003e80c95b8\u003c/code\u003e\u003c/a\u003e chore(internal): fix branch names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e5584f948a8692b0fb205248324eb89f269b9b5a\"\u003e\u003ccode\u003ee5584f9\u003c/code\u003e\u003c/a\u003e chore(internal): update private repo name\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.107.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.4.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.4.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\nfix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\ndocs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\nrelease(anthropic): 1.4.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37757\"\u003e#37757\u003c/a\u003e)\nchore(core): bump \u003ccode\u003euuid-utils\u003c/code\u003e to 0.16.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37699\"\u003e#37699\u003c/a\u003e)\nchore(infra): bump \u003ccode\u003elangchain-tests\u003c/code\u003e floor to 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37610\"\u003e#37610\u003c/a\u003e)\nrelease(standard-tests): 1.1.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37609\"\u003e#37609\u003c/a\u003e)\nchore: bump idna from 3.11 to 3.15 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37539\"\u003e#37539\u003c/a\u003e)\nci(infra): harden Dependabot version-bound preservation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37510\"\u003e#37510\u003c/a\u003e)\nhotfix: bump lockfiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37508\"\u003e#37508\u003c/a\u003e)\ndocs(core): note override for \u003ccode\u003e_get_ls_params\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37503\"\u003e#37503\u003c/a\u003e)\nchore(core,langchain,openai): refresh stale OpenAI model references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37487\"\u003e#37487\u003c/a\u003e)\nchore: bump langsmith from 0.7.31 to 0.8.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37395\"\u003e#37395\u003c/a\u003e)\nfix(core): accept \u003ccode\u003eSerializable\u003c/code\u003e constructor-envelope wire shape in \u003ccode\u003e_convert_to_message\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37456\"\u003e#37456\u003c/a\u003e)\nfix(core): preserve chunk \u003ccode\u003eadditional_kwargs\u003c/code\u003e across v3 stream assembly (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37435\"\u003e#37435\u003c/a\u003e)\nfix(core): preserve reasoning blocks alongside tool_call in v3 stream (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37434\"\u003e#37434\u003c/a\u003e)\nchore: bump jupyter-server from 2.17.0 to 2.18.0 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37354\"\u003e#37354\u003c/a\u003e)\nchore: bump mistune from 3.1.4 to 3.2.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37353\"\u003e#37353\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/langchain-ai/langchain/commit/a401351e12b9a3e1670314adf2f7bbcf8811903c\"\u003e\u003ccode\u003ea401351\u003c/code\u003e\u003c/a\u003e release(core): 1.4.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37922\"\u003e#37922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/053c368ba438ca077f1348147fadc5dad16d6898\"\u003e\u003ccode\u003e053c368\u003c/code\u003e\u003c/a\u003e fix(core): remove Bedrock prevalidation from \u003ccode\u003eload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37909\"\u003e#37909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0993edba86014788827144c175499755ec5b9f55\"\u003e\u003ccode\u003e0993edb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37916\"\u003e#37916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/6f7c8f54454ae45b07ca274cbfbb0afb8cef9041\"\u003e\u003ccode\u003e6f7c8f5\u003c/code\u003e\u003c/a\u003e chore: bump starlette from 0.49.1 to 1.0.1 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37899\"\u003e#37899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/586bcd46a17be1eafc61127460d766b2a0611db3\"\u003e\u003ccode\u003e586bcd4\u003c/code\u003e\u003c/a\u003e docs(core): expand and link \u003ccode\u003eModelProfile\u003c/code\u003e docstrings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37904\"\u003e#37904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9eab5237ccf7878648b2d33108a7f7e15331c452\"\u003e\u003ccode\u003e9eab523\u003c/code\u003e\u003c/a\u003e chore: bump requests from 2.34.0 to 2.34.2 in /libs/partners/xai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37903\"\u003e#37903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/be2e8f70bc472354f23e9f62519427dd2de7d332\"\u003e\u003ccode\u003ebe2e8f7\u003c/code\u003e\u003c/a\u003e ci(infra): add \u003ccode\u003eexclude\u003c/code\u003e input to skip libs in scheduled integration tests (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3b999176c84c1236e1f6fbaa5194782360e82264\"\u003e\u003ccode\u003e3b99917\u003c/code\u003e\u003c/a\u003e test(langchain,partners): disable pytest-benchmark under xdist to silence `Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/34af59c1a69c403d7b34d0bbd9ceffd287e3b0ed\"\u003e\u003ccode\u003e34af59c\u003c/code\u003e\u003c/a\u003e fix(partners): cap aiohttp below 3.14 for vcrpy compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37898\"\u003e#37898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/414d7b8e94fca5102e87a1f7a6c70e32622a85b9\"\u003e\u003ccode\u003e414d7b8\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37895\"\u003e#37895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.0...langchain-core==1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langsmith` from 0.8.4 to 0.8.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langsmith-sdk/releases\"\u003elangsmith's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(sandbox): add JS Dockerfile snapshots by \u003ca href=\"https://github.com/langchain-infra\"\u003e\u003ccode\u003e@​langchain-infra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951\"\u003elangchain-ai/langsmith-sdk#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/langchain-ai/langsmith-sdk/pull/2931\"\u003elangchain-ai/langsmith-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump websockets from 15.0.1 to 16.0 in /python 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/langchain-ai/langsmith-sdk/pull/2811\"\u003elangchain-ai/langsmith-sdk#2811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update myst-parser requirement from \u0026gt;=3 to \u0026gt;=4.0.1 in /python 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/langchain-ai/langsmith-sdk/pull/2841\"\u003elangchain-ai/langsmith-sdk#2841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/langchain-ai/langsmith-sdk/pull/2934\"\u003elangchain-ai/langsmith-sdk#2934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump typescript from 5.9.3 to 6.0.3 in /js 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/langchain-ai/langsmith-sdk/pull/2839\"\u003elangchain-ai/langsmith-sdk#2839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python 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/langchain-ai/langsmith-sdk/pull/2960\"\u003elangchain-ai/langsmith-sdk#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python 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/langchain-ai/langsmith-sdk/pull/2961\"\u003elangchain-ai/langsmith-sdk#2961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/langchain-ai/langsmith-sdk/pull/2958\"\u003elangchain-ai/langsmith-sdk#2958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 in /python 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/langchain-ai/langsmith-sdk/pull/2959\"\u003elangchain-ai/langsmith-sdk#2959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add minimum workflow permissions by \u003ca href=\"https://github.com/jkennedyvz\"\u003e\u003ccode\u003e@​jkennedyvz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2967\"\u003elangchain-ai/langsmith-sdk#2967\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/anulum/director-ai/pull/77","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anulum%2Fdirector-ai/issues/77","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/77/packages"}},{"old_version":"1.41.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-07T04:33:29.000Z","version_change":"1.41.1 → 1.42.1","issue":{"uuid":"4606167189","node_id":"PR_kwDOSXLGM87jkUY4","number":17,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-14T04:29:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-07T04:33:29.000Z","updated_at":"2026-06-14T04:29:59.000Z","time_to_close":604588,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":26,"packages":[{"name":"apprise","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cyclopts","old_version":"4.15.0","new_version":"4.16.1","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"opentelemetry-api","old_version":"1.41.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.20.3","new_version":"0.21.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.19","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-shell","old_version":"0.3.5","new_version":"0.3.6","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-dask","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-github","old_version":"0.4.2","new_version":"0.4.3","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-dbt","old_version":"0.7.24","new_version":"0.7.25","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-snowflake","old_version":"0.28.7","new_version":"0.28.8","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.2.1","new_version":"5.2.2","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.409","new_version":"1.1.410","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"redis","old_version":"7.4.0","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"virtualenv","old_version":"21.3.3","new_version":"21.4.2","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.11.0` |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.15.0` | `4.16.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.41.1` | `1.42.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.49.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.20.3` | `0.21.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.19` |\n| [prefect-shell](https://github.com/PrefectHQ/prefect) | `0.3.5` | `0.3.6` |\n| [prefect-dask](https://github.com/PrefectHQ/prefect) | `0.3.6` | `0.3.7` |\n| [prefect-github](https://github.com/PrefectHQ/prefect) | `0.4.2` | `0.4.3` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.24` | `0.7.25` |\n| [prefect-snowflake](https://github.com/PrefectHQ/prefect) | `0.28.7` | `0.28.8` |\n| [moto](https://github.com/getmoto/moto) | `5.2.1` | `5.2.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.409` | `1.1.410` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `8.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.3.3` | `21.4.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.16` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `apprise` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eA big win for this release is priortization of grouped/tagged content. Basically, this release allows you to tag multiple items and provide a weight to them.   Apprise will attempt to notify the highest priority/weighted services first (of same level), and only if this level fails will it try the next.  Tagging is no longer just a \u003ccode\u003etag\u003c/code\u003e.  It's now \u003ccode\u003eweight:tag\u003c/code\u003e too;  for example \u003ccode\u003e100:friends\u003c/code\u003e  associates the weight of \u003ccode\u003e100\u003c/code\u003e with the tag \u003ccode\u003efriends\u003c/code\u003e.  You can still continue to notify friends with your Apprise calls, but if there are weight categories, then these will be factored into the order.  Highest priority (weighted) tags have a lower integer value (zero being the  higest priority).  Only the next priority will be notified if the first fails.\u003c/p\u003e\n\u003cp\u003eThis releae also allows you to set up a notifiation service to gracefully fail and not have Apprise itself report a failure.  This is useful for situations where you notify several end points and you really don't care if they're unavailable or not.   Apprise wil do it's usual best effort to send the notification, but not treat it as a failure if it can't get through. Use \u003ccode\u003eoptional=yes\u003c/code\u003e on your Apprise URL.\u003c/p\u003e\n\u003cp\u003eThirdly, this release introduces retries! You can now have Apprise attempt to notify your endpoint a second, or a third, (up to 10x) tries before giving up and deeming it unable to send the notification.  Use \u003ccode\u003eretry=X\u003c/code\u003e on your Apprise URL\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Zoom (Incoming Webhook) Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1596\"\u003ecaronc/apprise#1596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded WeChat Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1598\"\u003ecaronc/apprise#1598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRingCentral Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/878\"\u003ecaronc/apprise#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSession Open Group Server Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1615\"\u003ecaronc/apprise#1615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded HumHub Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1623\"\u003ecaronc/apprise#1623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon Chime Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1627\"\u003ecaronc/apprise#1627\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGroupMe Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1629\"\u003ecaronc/apprise#1629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimproved robustness of windows test cases preventing others from passing in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1609\"\u003ecaronc/apprise#1609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle XMPP SASL SCRAM-PLUS / Channel Binding in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1619\"\u003ecaronc/apprise#1619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTRACE logging during apprise init cleaned up in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1622\"\u003ecaronc/apprise#1622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed mastodon error: AttributeError -  'list' object has no attribute 'union' in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1631\"\u003ecaronc/apprise#1631\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eo365:// saveToSentItems configurable - ?savesent=no in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1599\"\u003ecaronc/apprise#1599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated WhatsApp Buisness Graph API to v21 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1603\"\u003ecaronc/apprise#1603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Built in retries, escalations, priorities, and optional service calls in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1601\"\u003ecaronc/apprise#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSlack Template/Payload support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1604\"\u003ecaronc/apprise#1604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Slack workflows and trigger support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1605\"\u003ecaronc/apprise#1605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:rocket: Pushover E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1612\"\u003ecaronc/apprise#1612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWKD support added to email plugin in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1614\"\u003ecaronc/apprise#1614\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1618\"\u003ecaronc/apprise#1618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon SNS/SES Improvements in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1620\"\u003ecaronc/apprise#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNotifico Standalone Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1275\"\u003ecaronc/apprise#1275\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1593\"\u003ecaronc/apprise#1593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitter/X migration to API v2 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1607\"\u003ecaronc/apprise#1607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprovements to workflow:// based on recent slack:// changes in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1608\"\u003ecaronc/apprise#1608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:unlock: Added redirect= for allowing url redirection control in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1610\"\u003ecaronc/apprise#1610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emqtt:// now depends on paho-mqtt v2.1.0+ in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1613\"\u003ecaronc/apprise#1613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:skull: Retire msteams:// as it is no longer in service upstream in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1625\"\u003ecaronc/apprise#1625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.11.0 from PyPI\r\npip install apprise==1.11.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/158c4e1febc3e6093b0f357776b315a90c8a89b5\"\u003e\u003ccode\u003e158c4e1\u003c/code\u003e\u003c/a\u003e bumped version to v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/21db421ee89b24f1716a4fce74a4404a94bbabe7\"\u003e\u003ccode\u003e21db421\u003c/code\u003e\u003c/a\u003e GroupMe Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/f1e4ad2fd6659529597b1e07a1e44192faebff54\"\u003e\u003ccode\u003ef1e4ad2\u003c/code\u003e\u003c/a\u003e fixed mastodon error: AttributeError - 'list' object has no attribute 'union'...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e17fe9dd64dd79e373877cf8ee07595cc50a01cc\"\u003e\u003ccode\u003ee17fe9d\u003c/code\u003e\u003c/a\u003e Amazon Chime Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/dfdac59c9945385c4c75613e57d19558ec995d50\"\u003e\u003ccode\u003edfdac59\u003c/code\u003e\u003c/a\u003e HumHub Support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9de0397c30a7a2e58eb57c8da995ec54eada80bc\"\u003e\u003ccode\u003e9de0397\u003c/code\u003e\u003c/a\u003e Notifico Standalone Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/c3e67e61d35a1b0609d176786db1e0b2cc1287da\"\u003e\u003ccode\u003ec3e67e6\u003c/code\u003e\u003c/a\u003e Retired msteams:// - as it is no longer in service upstream (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1625\"\u003e#1625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/b463f23979455b61c548a550e40a3c75f0191b30\"\u003e\u003ccode\u003eb463f23\u003c/code\u003e\u003c/a\u003e TRACE logging during apprise init cleaned up (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1e2fdeb72bd8165ad613b162794778ff1c684e67\"\u003e\u003ccode\u003e1e2fdeb\u003c/code\u003e\u003c/a\u003e Amazon SNS/SES Improvements (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4706d0a4599a5072c8ae17375ee81862bcaac460\"\u003e\u003ccode\u003e4706d0a\u003c/code\u003e\u003c/a\u003e Handle XMPP SASL SCRAM-PLUS / Channel Binding (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1619\"\u003e#1619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.10.0...v1.11.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.4.0 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. {issue}\u003ccode\u003e3458\u003c/code\u003e {pr}\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. {issue}\u003ccode\u003e3277\u003c/code\u003e {pr}\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eEnum\u003c/code\u003e values used as \u003ccode\u003eChoice\u003c/code\u003e options produces a\nvalid completion result. {issue}\u003ccode\u003e3015\u003c/code\u003e {pr}\u003ccode\u003e3471\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. {issue}\u003ccode\u003e3487\u003c/code\u003e {pr}\u003ccode\u003e3493\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e {pr}\u003ccode\u003e3482\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eopen_url\u003c/code\u003e on Windows when the file path contains spaces.\n{issue}\u003ccode\u003e2994\u003c/code\u003e {pr}\u003ccode\u003e3478\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.15.0 to 4.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix fish completion for positional args and run fish tests in ci by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/823\"\u003eBrianPugh/cyclopts#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix zsh completion recursion when \u003ccode\u003eprog_name\u003c/code\u003e matches a builtin helper by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/825\"\u003eBrianPugh/cyclopts#825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd ubuntu-24.04-arm to the CI testing matrix by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/822\"\u003eBrianPugh/cyclopts#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing typer Option imports in flag negation examples by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.16.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn-value objects can now declare their own exit code by defining a \u003ccode\u003e__cyclopts_returncode__\u003c/code\u003e method, which is honored by all built-in \u003ccode\u003eresult_action\u003c/code\u003e handlers. Custom \u003ccode\u003eresult_action\u003c/code\u003e callables can opt in via the new \u003ccode\u003ecyclopts.resolve_returncode\u003c/code\u003e helper. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/818\"\u003eBrianPugh/cyclopts#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://peps.python.org/pep-0692/\"\u003ePEP 692\u003c/a\u003e support: when \u003ccode\u003e**kwargs\u003c/code\u003e is annotated as \u003ccode\u003eUnpack[SomeTypedDict]\u003c/code\u003e, the TypedDict's fields are promoted to top-level CLI options instead of the generic \u003ccode\u003e--[KEYWORD]\u003c/code\u003e catch-all. Per-field \u003ccode\u003eRequired\u003c/code\u003e / \u003ccode\u003eNotRequired\u003c/code\u003e markers are respected independently of the parent kwargs argument. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/819\"\u003eBrianPugh/cyclopts#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCycloptsError.msg\u003c/code\u003e now accepts a \u003ccode\u003erich.Text\u003c/code\u003e instance. Cyclopts' error-message style palette is exposed as \u003ccode\u003ecyclopts.exceptions.STYLE_OFFENDING_VALUE\u003c/code\u003e, \u003ccode\u003eSTYLE_NAME\u003c/code\u003e, \u003ccode\u003eSTYLE_VALID_CHOICE\u003c/code\u003e, \u003ccode\u003eSTYLE_SUGGESTION\u003c/code\u003e, and \u003ccode\u003eSTYLE_SOURCE\u003c/code\u003e . By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/814\"\u003eBrianPugh/cyclopts#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.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/BrianPugh/cyclopts/commit/ea77abc99ef67dc4da21548d3b2ff2150c265afe\"\u003e\u003ccode\u003eea77abc\u003c/code\u003e\u003c/a\u003e fix zsh completion recursion when prog_name matches a builtin helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/e297647b12b71155d01f87e8e1d5e008c90962b6\"\u003e\u003ccode\u003ee297647\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/824\"\u003e#824\u003c/a\u003e from SAY-5/docs-fix-typer-option-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/923a5648ed221c1f7683810851c4ade348149fa4\"\u003e\u003ccode\u003e923a564\u003c/code\u003e\u003c/a\u003e docs: add missing typer Option imports in flag negation examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ddb9cc2ec53ad103a4525e399afa92188ac81ae3\"\u003e\u003ccode\u003eddb9cc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/823\"\u003e#823\u003c/a\u003e from BrianPugh/fish-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bd56e32b839d9b90e060b1fd88105985194887db\"\u003e\u003ccode\u003ebd56e32\u003c/code\u003e\u003c/a\u003e fix fish completion for positional args and run fish tests in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/fba7293a546d7569f8cb74a85badc0a8f9401691\"\u003e\u003ccode\u003efba7293\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/822\"\u003e#822\u003c/a\u003e from BrianPugh/arm-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/17e22f16883a7132b9d9bc12dc18c16b726d8a73\"\u003e\u003ccode\u003e17e22f1\u003c/code\u003e\u003c/a\u003e skip global zsh rcs in completion tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4cc78acd473f09d1e6267ed92f3ca24358c4b8cd\"\u003e\u003ccode\u003e4cc78ac\u003c/code\u003e\u003c/a\u003e install zsh in linux ci runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5c87c2752b494e9486f422d48473d206cd6ab66e\"\u003e\u003ccode\u003e5c87c27\u003c/code\u003e\u003c/a\u003e add ubuntu-24.04-arm to the CI testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/be2b4295f4632315ae1e49c8f3799bc71086a751\"\u003e\u003ccode\u003ebe2b429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/819\"\u003e#819\u003c/a\u003e from BrianPugh/pep-692\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\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.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build 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/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\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.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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 docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\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 translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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 translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\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 translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\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 translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.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.47.0 to 0.49.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.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 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/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) 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/2971\"\u003eKludex/uvicorn#2971\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.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/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.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.20.3 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.21.1 - Eight misbehavin'\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eredis-py==8.0.0\u003c/code\u003e changed a default timeout that broke long-lived blocking connections (like pubsub and streams).  With this release, that's fixed and we support (and have tests for) redis-py 5.x, 6.x, 7.x, and 8.x\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport redis-py 8, and make CI actually exercise it by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/427\"\u003echrisguidry/docket#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.21.0 - Don't Call Me\u003c/h2\u003e\n\u003cp\u003eThis is a performance-tuning release focused on reducing how chatty Docket is with Redis, and folding several separate operations into single pipelines and scripts.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump idna from 3.11 to 3.15 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/chrisguidry/docket/pull/418\"\u003echrisguidry/docket#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pymdown-extensions from 10.21.2 to 10.21.3 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/chrisguidry/docket/pull/417\"\u003echrisguidry/docket#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all-dependencies group across 1 directory with 14 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/chrisguidry/docket/pull/416\"\u003echrisguidry/docket#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache Lua scripts at module scope to skip per-call SHA work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/419\"\u003echrisguidry/docket#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold state PUBLISH into the per-task Lua scripts by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/420\"\u003echrisguidry/docket#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold the rest of the task-completion path into _terminal by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/421\"\u003echrisguidry/docket#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePost-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/422\"\u003echrisguidry/docket#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock in regression coverage for implicit invariants in the recent Lua refactor by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/423\"\u003echrisguidry/docket#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.3...0.21.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/chrisguidry/docket/commit/cfafd7e3d8b4dd20d237b237c2b4ce78dc69ad5b\"\u003e\u003ccode\u003ecfafd7e\u003c/code\u003e\u003c/a\u003e Support redis-py 8, and make CI actually exercise it (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/11ebbcd7731441c0460b00d41bdbaeb5072069bb\"\u003e\u003ccode\u003e11ebbcd\u003c/code\u003e\u003c/a\u003e Lock in regression coverage for implicit invariants in the recent Lua refacto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/bf1fa2afc122968b6a0845e7b7edc5f112c0a79d\"\u003e\u003ccode\u003ebf1fa2a\u003c/code\u003e\u003c/a\u003e Post-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/b82ef829c704d4a102b3e2b11fabf69d118e3673\"\u003e\u003ccode\u003eb82ef82\u003c/code\u003e\u003c/a\u003e Fold the rest of the task-completion path into _terminal (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/1cdb6dfffe8791684f3b0abe94751a54aaa8dc63\"\u003e\u003ccode\u003e1cdb6df\u003c/code\u003e\u003c/a\u003e Fold state PUBLISH into the per-task Lua scripts (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/e95be4a45bdf87cd4c67c9c9a5fd5db83d4c8136\"\u003e\u003ccode\u003ee95be4a\u003c/code\u003e\u003c/a\u003e Cache Lua scripts at module scope to skip per-call SHA work (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/718df97071c73b84ce9b6afcd49e51b75fcbe69f\"\u003e\u003ccode\u003e718df97\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group across 1 directory with 14 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ea4077df41e2e2451f7767ced4db0aaef1c2d5c2\"\u003e\u003ccode\u003eea4077d\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions from 10.21.2 to 10.21.3 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/6d015281dee243fcbc9e359fdd204b0926704b02\"\u003e\u003ccode\u003e6d01528\u003c/code\u003e\u003c/a\u003e Bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp` from 1.41.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation` from 0.62b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/releases\"\u003eopentelemetry-instrumentation's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.4b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate experimental path from deprecated \u003ccode\u003eLLMInvocation\u003c/code\u003e to \u003ccode\u003eInferenceInvocation\u003c/code\u003e, using \u003ccode\u003ehandler.start_inference()\u003c/code\u003e and \u003ccode\u003einvocation.stop()\u003c/code\u003e/\u003ccode\u003einvocation.fail()\u003c/code\u003e directly (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4502\"\u003e#4502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ecreate_duration_histogram\u003c/code\u003e and \u003ccode\u003ecreate_token_histogram\u003c/code\u003e from \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e instead of defining bucket boundaries locally (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4501\"\u003e#4501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImport \u003ccode\u003eOTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT\u003c/code\u003e from \u003ccode\u003eopentelemetry.util.genai.environment_variables\u003c/code\u003e instead of re-defining it locally, making \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e the single source of truth for this constant. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4455\"\u003e#4455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with wrapt 2.x by using positional arguments in \u003ccode\u003ewrap_function_wrapper()\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4445\"\u003e#4445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eChoiceBuffer\u003c/code\u003e crash on streaming tool-call deltas with \u003ccode\u003earguments=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4350\"\u003e#4350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eStreamWrapper\u003c/code\u003e missing \u003ccode\u003e.headers\u003c/code\u003e and other attributes when using \u003ccode\u003ewith_raw_response\u003c/code\u003e streaming (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/issues/4113\"\u003e#4113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd opt-in support for latest experimental semantic conventions (v1.37.0). Set \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e to \u003ccode\u003egen_ai_latest_experimental\u003c/code\u003e to enable. Add dependency on \u003ccode\u003eopentelemetry-util-genai\u003c/code\u003e pypi package. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3715\"\u003e#3715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd wrappers for OpenAI Responses API streams and response stream managers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4280\"\u003e#4280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd async wrappers for OpenAI Responses API streams and response stream managers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4325\"\u003e#4325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd strongly typed Responses API extractors with validation and content extraction improvements (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4337\"\u003e#4337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd completion hook support. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eresponse_format\u003c/code\u003e handling: map \u003ccode\u003ejson_object\u003c/code\u003e/\u003ccode\u003ejson_schema\u003c/code\u003e to \u003ccode\u003ejson\u003c/code\u003e output type. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip attribute values with \u003ccode\u003eopenai.Omit\u003c/code\u003e value. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4315\"\u003e#4315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault empty string for \u003ccode\u003egen_ai.request.model\u003c/code\u003e attribute on missing model. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4494\"\u003e#4494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.3b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when handling \u003ccode\u003eLegacyAPIResponse\u003c/code\u003e (from \u003ccode\u003ewith_raw_response\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for chat completions choice count and stop sequences span attributes (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4028\"\u003e#4028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash with streaming \u003ccode\u003ewith_raw_response\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4033\"\u003e#4033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump to 1.30.0 semconv schema: \u003ccode\u003egen_ai.request.seed\u003c/code\u003e instead of \u003ccode\u003egen_ai.openai.request.seed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4036\"\u003e#4036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-openai-v2 2.2b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix service tier attribute names: use \u003ccode\u003eGEN_AI_OPENAI_REQUEST_SERVICE_TIER\u003c/code\u003e for request attributes and \u003ccode\u003eGEN_AI_OPENAI_RESPONSE_SERVICE_TIER\u003c/code\u003e for response attributes. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for OpenAI embeddings instrumentation (\u003ca href=\"https://redirect.githu...\n\n_Description has been truncated_","html_url":"https://github.com/beaconchain-horizon/prefect/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/beaconchain-horizon%2Fprefect/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"1.39.1","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-04T04:47:49.000Z","version_change":"1.39.1 → 1.42.1","issue":{"uuid":"4585885997","node_id":"PR_kwDORfOU_c7ih_JF","number":232,"state":"closed","title":"Bump the pip-production-dependencies group across 5 directories with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T04:40:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-04T04:47:49.000Z","updated_at":"2026-06-11T04:40:12.000Z","time_to_close":604341,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-production-dependencies","update_count":18,"packages":[{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.78.0","new_version":"1.81.0"},{"name":"opentelemetry-distro","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.24.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.1","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.60b1","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 18 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 2 updates in the /src/llm directory: [python-json-logger](https://github.com/nhairs/python-json-logger) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 11 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b1` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 9 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.24.0` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 6 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.78.0` | `1.81.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b1` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.78.0 to 1.81.0\n\nUpdates `opentelemetry-distro` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.24.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.24.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binary wheel on\nPyPI, fell through to the sdist, and failed on the PEP 517\nisolated-build step complaining that \u003ccode\u003esetuptools\u0026gt;=42\u003c/code\u003e was not in\nthe wheelhouse.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/377\"\u003esimplejson/simplejson#377\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.1.0 released 2026-04-22\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now accelerates encoding when \u003ccode\u003eindent=\u003c/code\u003e is set.\nPreviously the encoder fell back to the pure-Python implementation\nwhenever a non-None \u003ccode\u003eindent\u003c/code\u003e was passed; now the C encoder emits\nthe newline-plus-indent prefix, the level-aware item separator, and\nthe closing indent directly.  A representative nested-dict workload\nbenchmarks about 4-5x faster end-to-end, and the \u003ccode\u003eindent=0\u003c/code\u003e and\nempty-container edge cases continue to match the Python output\nbyte-for-byte.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now emits PEP 678 \u003ccode\u003eexc.add_note()\u003c/code\u003e annotations on\nserialization failures, matching the pure-Python encoder.  A chained\nerror on \u003ccode\u003e{'a': [1, object(), 3]}\u003c/code\u003e produces the same three notes\n(\u003ccode\u003ewhen serializing object object\u003c/code\u003e, \u003ccode\u003ewhen serializing list item 1\u003c/code\u003e,\n\u003ccode\u003ewhen serializing dict item 'a'\u003c/code\u003e) whether the speedups are loaded\nor not, so the add_note assertions in \u003ccode\u003etest_errors.py\u003c/code\u003e no longer\nneed \u003ccode\u003eindent=2\u003c/code\u003e to force the Python path.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.1 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSkip uploading Pyodide/wasm wheels to PyPI, which rejects them with\n\u0026quot;unsupported platform tag 'pyodide_2024_0_wasm32'\u0026quot;. The wheels are\nstill built in CI and preserved as workflow artifacts.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\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/simplejson/simplejson/commit/639b2ee73b2de6b385fcd4d44e0e08054a4d8a0e\"\u003e\u003ccode\u003e639b2ee\u003c/code\u003e\u003c/a\u003e Add Python 2.7 wheel builds for Windows platforms (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0fd3185ce301bdefe61bbbf510536fa9127962fb\"\u003e\u003ccode\u003e0fd3185\u003c/code\u003e\u003c/a\u003e Accelerate indented encoding in the C extension; release 4.1.0 (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/19b5f94f235d3ac11646b82c02f292845b2aa184\"\u003e\u003ccode\u003e19b5f94\u003c/code\u003e\u003c/a\u003e Exclude Pyodide wheels from PyPI uploads (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/1608c050bbc2ae67ddfe913dad83bed7d588aa27\"\u003e\u003ccode\u003e1608c05\u003c/code\u003e\u003c/a\u003e Use JSONDecodeError for out-of-range end indices in C scanstring (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/3bba17935f12695355b5280df2a93bf963b704dd\"\u003e\u003ccode\u003e3bba179\u003c/code\u003e\u003c/a\u003e Encoder parity fixes (for_json/_asdict) and TSan stress CI job (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/7b22d65b92ac7e69f740f59fe11548216b79c098\"\u003e\u003ccode\u003e7b22d65\u003c/code\u003e\u003c/a\u003e Error parity for the C and Python scanstring in surrogate and truncated strin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/825100a7fc498dafae31d10bef3e3cfaba1fdc5b\"\u003e\u003ccode\u003e825100a\u003c/code\u003e\u003c/a\u003e Release version 4.0.0: free-threading, CPython json parity, Python 2.7 fixes ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/0dbb9d875127a9009f01a4036fa950b0a5f4f589\"\u003e\u003ccode\u003e0dbb9d8\u003c/code\u003e\u003c/a\u003e C extension: dead code cleanup, fast paths for dict/list/string encoding, cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e2e5f0b2d3bae3fd9a56bbaab42f6d75fb980ad5\"\u003e\u003ccode\u003ee2e5f0b\u003c/code\u003e\u003c/a\u003e Add Python 3.13+ free-threading support to dict operations (\u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/e817370a91f4f51a0aec5f0f7bdeb1ca601ed101\"\u003e\u003ccode\u003ee817370\u003c/code\u003e\u003c/a\u003e Fix free-threading (3.14t) crashes: heap types, unified per-module state, tem...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.2...v4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-ofrep` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-ofrep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-ofrep: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eofrep:\u003c/strong\u003e handle 401, 403, 404 and 5xx errors explicitly and add tests (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/346\"\u003e#346\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/7e18bc120ee1a310c28c96aac5b608941889d756\"\u003e7e18bc1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egraceful fallback to code default when no default variant (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/347\"\u003e#347\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36db67de59732463a372c056525d6453d8a51a75\"\u003e36db67d\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/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/36c52d03aeddf5aa922f74ca7ef5c0ec9f6b790d\"\u003e\u003ccode\u003e36c52d0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency asserts to \u0026gt;=0.14.0,\u0026lt;0.15.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003e\u003ccode\u003ec119a77\u003c/code\u003e\u003c/a\u003e fix: various custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c8c9ebe7b2cd51e8c0ce065fdb4e024aecfd3ff3\"\u003e\u003ccode\u003ec8c9ebe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6d3c5f8adafe7150c9bab519ed6c866ff5f85478\"\u003e\u003ccode\u003e6d3c5f8\u003c/code\u003e\u003c/a\u003e chore: stabilize transitive flagd deps (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/6b7c78e1f08ad862059bd31d6aef18f66224a755\"\u003e\u003ccode\u003e6b7c78e\u003c/code\u003e\u003c/a\u003e fix(security): update vulnerability-updates [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e\u003ccode\u003e1995534\u003c/code\u003e\u003c/a\u003e feat(flagd): extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-ofrep/v0.2.0...openfeature-provider-ofrep/v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-jinja2` from 0.60b1 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-jinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/43...\n\n_Description has been truncated_","html_url":"https://github.com/jlawton-cribl/opentelemetry-demo/pull/232","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlawton-cribl%2Fopentelemetry-demo/issues/232","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/232/packages"}},{"old_version":"1.38.0","new_version":"1.42.1","update_type":"minor","path":null,"pr_created_at":"2026-06-04T01:52:29.000Z","version_change":"1.38.0 → 1.42.1","issue":{"uuid":"4585093569","node_id":"PR_kwDOQpxn1c7ifX4B","number":266,"state":"closed","title":"build(deps): bump the pip-production-dependencies group across 5 directories with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-11T13:00:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-04T01:52:29.000Z","updated_at":"2026-06-11T13:01:01.000Z","time_to_close":644910,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-production-dependencies","update_count":21,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"openfeature-provider-flagd","old_version":"0.2.3","new_version":"0.5.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"grpcio-health-checking","old_version":"1.71.0","new_version":"1.81.0"},{"name":"openfeature-hooks-opentelemetry","old_version":"0.2.0","new_version":"0.3.1","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-distro","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"openai","old_version":"2.7.2","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"simplejson","old_version":"3.20.2","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"openfeature-provider-ofrep","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-feature/python-sdk-contrib"},{"name":"opentelemetry-api","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-jinja2","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.38.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.59b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-production-dependencies group with 21 updates in the /src directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.7.2` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 4 updates in the /src/llm directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [python-json-logger](https://github.com/nhairs/python-json-logger), [flask](https://github.com/pallets/flask) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib).\nBumps the pip-production-dependencies group with 13 updates in the /src/load-generator directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [openfeature-provider-ofrep](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.59b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n\nBumps the pip-production-dependencies group with 11 updates in the /src/product-reviews directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [openai](https://github.com/openai/openai-python) | `2.7.2` | `2.41.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.2` | `4.1.1` |\n\nBumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib) | `0.2.3` | `0.5.0` |\n| [grpcio-health-checking](https://grpc.io) | `1.71.0` | `1.81.0` |\n| [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib) | `0.2.0` | `0.3.1` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.59b0` | `0.63b1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.42.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-json-logger` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openfeature-provider-flagd` from 0.2.3 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-provider-flagd's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.1...openfeature-provider-flagd/v0.5.0\"\u003e0.5.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003ee7d1d34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003ee1c3c6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.4.0...openfeature-provider-flagd/v0.4.1\"\u003e0.4.1\u003c/a\u003e (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evarious custom operator conformance fixes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/386\"\u003e#386\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c119a774736dd4d48a4dc82d158aafc17cc3936f\"\u003ec119a77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eflagd:\u003c/strong\u003e extract evaluator into api, core, and testkit packages (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/377\"\u003e#377\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/1995534c2545b8c65d2944e3e52ce19a552b4815\"\u003e1995534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.3.0...openfeature-provider-flagd/v0.4.0\"\u003e0.4.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003echore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/364\"\u003e#364\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/0ecd1d4c41e96f90b019a76ce9c3b1f70f2a23a4\"\u003e0ecd1d4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efractional bucketing improvements (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/373\"\u003e#373\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/83c3e48595c0f44b4a3259719a5d85fde987f492\"\u003e83c3e48\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce list for fatal status codes (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/362\"\u003e#362\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/96a88ada622fb7941a1d4d58205ff3342180fa9a\"\u003e96a88ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-provider-flagd: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.7...openfeature-provider-flagd/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\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/open-feature/python-sdk-contrib/commit/9c493b82c022bcee18bfce02f829153b98efe53d\"\u003e\u003ccode\u003e9c493b8\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.5.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e7d1d34a0c51fed768fc4276427df3cae094b16f\"\u003e\u003ccode\u003ee7d1d34\u003c/code\u003e\u003c/a\u003e feat!: DISABLED is a successful evaluation (still defaults) (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/e1c3c6ae6482624e7851be4cfc645ed45d6eaedd\"\u003e\u003ccode\u003ee1c3c6a\u003c/code\u003e\u003c/a\u003e feat: make use of flagd-selector header in RPC mode (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c4b425776715f85b04c1c29e007d095d9025760b\"\u003e\u003ccode\u003ec4b4257\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/daafd7336ecfba856803965cf26c198bb0e4f22c\"\u003e\u003ccode\u003edaafd73\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/f084e84b22a7ed1aef3a800ee4a07cf3a6095f6b\"\u003e\u003ccode\u003ef084e84\u003c/code\u003e\u003c/a\u003e chore: resolve open dependabot security alerts (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4ef10198f1dad5887056f453340f6fb3c9dabc83\"\u003e\u003ccode\u003e4ef1019\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-ofrep 0.3.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/5857f4503c4891034bb63256c1e2a20333ba3da1\"\u003e\u003ccode\u003e5857f45\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.4.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/3197e020e0d3ebde666b379699be5d3853c98090\"\u003e\u003ccode\u003e3197e02\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-api 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/4f95c87fb9fd08424089793929697b88eee0c0e6\"\u003e\u003ccode\u003e4f95c87\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-flagd-core 1.0.0 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.2.3...openfeature-provider-flagd/v0.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-health-checking` from 1.71.0 to 1.81.0\n\nUpdates `openfeature-hooks-opentelemetry` from 0.2.0 to 0.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/releases\"\u003eopenfeature-hooks-opentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.3.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003e0.3.1\u003c/a\u003e (2026-02-17)\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e2a2127d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e61add22\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopenfeature-hooks-opentelemetry: v0.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.2.0...openfeature-hooks-opentelemetry/v0.3.0\"\u003e0.3.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate opentelemetry hook to latest version of semantic conventions (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/326\"\u003e#326\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e✨ New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emigrate to uv (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/293\"\u003e#293\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/9590554be4c8a7f77b0c0f20d6b48076c9870f52\"\u003e9590554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate opentelemetry hook to latest version of semantic conventions (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/326\"\u003e#326\u003c/a\u003e) (\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a2ec682a709a4721f8362cfa6a9e6037937761ee\"\u003ea2ec682\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/open-feature/python-sdk-contrib/commit/83926dea688eac265405b79c2ec00c9d08c8862e\"\u003e\u003ccode\u003e83926de\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-hooks-opentelemetry 0.3.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2a2127d958ea0bafabb673335fd0d9665c8d9291\"\u003e\u003ccode\u003e2a2127d\u003c/code\u003e\u003c/a\u003e fix: Align TracingHook with spec (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/c08b414007f6ce10dcb83249142f054b6d6043d6\"\u003e\u003ccode\u003ec08b414\u003c/code\u003e\u003c/a\u003e chore: align unleash pyproject.toml to others (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/8239b836a25663e0030b3891d0140cb365798a37\"\u003e\u003ccode\u003e8239b83\u003c/code\u003e\u003c/a\u003e feat(provider): add \u003ccode\u003eaws-ssm\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/61add22b975140ccd39b618bf70efeeecbdc25c3\"\u003e\u003ccode\u003e61add22\u003c/code\u003e\u003c/a\u003e fix: replace project.scripts with poethepoet (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a835c77f10c82af2157ea15be0ffae7bad79b8ce\"\u003e\u003ccode\u003ea835c77\u003c/code\u003e\u003c/a\u003e chore: relax \u003ccode\u003etypes-requests\u003c/code\u003e and update \u003ccode\u003egrpcio\u003c/code\u003e version constraints (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/a345ef9f1ea3333e49a173553a9098f5db6746a7\"\u003e\u003ccode\u003ea345ef9\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-flagd 0.2.7 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/b9c164a2342d101e23e062a81558f02fe0a38c0b\"\u003e\u003ccode\u003eb9c164a\u003c/code\u003e\u003c/a\u003e fix(security): update dependency protobuf to v6.33.5 [security] (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/2feabd5d70bef2de6661fadf3d74238991a27466\"\u003e\u003ccode\u003e2feabd5\u003c/code\u003e\u003c/a\u003e chore(main): release openfeature-provider-unleash 0.1.1 (\u003ca href=\"https://redirect.github.com/open-feature/python-sdk-contrib/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-feature/python-sdk-contrib/commit/dcb8fadfbc0263e68c381681b5b92cb5fea2dc0d\"\u003e\u003ccode\u003edcb8fad\u003c/code\u003e\u003c/a\u003e chore: add component owners\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.2.0...openfeature-hooks-opentelemetry/v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-distro` from 0.59b0 to 0.63b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-richconsole\u003c/code\u003e: Add support for suppressing resource\ninformation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add experimental metrics attributes Labeler\nutility\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add \u003ccode\u003eOTEL_PYTHON_LOG_HANDLER_LEVEL\u003c/code\u003e\nand \u003ccode\u003eOTEL_PYTHON_LOG_FORMAT\u003c/code\u003e environment variables to configure the log level\nand formatter of the auto-instrumented \u003ccode\u003eLoggingHandler\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4298\"\u003e#4298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-sqlite3\u003c/code\u003e: Add uninstrument, error status,\nsuppress, and no-op tests\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4335\"\u003e#4335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eBaggageLogProcessor\u003c/code\u003e to \u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-system-metrics\u003c/code\u003e: Add support for\n\u003ccode\u003eprocess.disk.io\u003c/code\u003e metric in system-metrics instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Register \u003ccode\u003eOTEL_SEMCONV_STABILITY_OPT_IN\u003c/code\u003e in\n\u003ccode\u003eenvironment_variables.py\u003c/code\u003e so \u003ccode\u003eopentelemetry-instrument\u003c/code\u003e exposes a\n\u003ccode\u003e--semconv_stability_opt_in\u003c/code\u003e CLI argument\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eAGENTS.md\u003c/code\u003e with instrumentation/GenAI guidance and add PR review\ninstructions.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: update auto-instrumentation to re-inject\ninstrumentation path after init\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4469\"\u003e#4469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e: Add Database client operation duration\nand returned rows metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove redundant \u003ccode\u003epylint: disable=attribute-defined-outside-init\u003c/code\u003e comments\nand add rule to global \u003ccode\u003e.pylintrc\u003c/code\u003e disable list\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003epylint\u003c/code\u003e to \u003ccode\u003e4.0.5\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Use \u003ccode\u003eLogRecord.getMessage()\u003c/code\u003e to\nformat and extract each log record's body text to more closely match the\nexpected usage of the logging system. As a result, all OTel log record bodies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.38.0 to 1.42.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead of always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add support for 'random-trace-id'\nflags in W3C traceparent header trace flags. Implementations of \u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns \u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable gRPC error codes\nconfigurable for gRPC exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation from\nconfig files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource detector support to declarative\nfile configuration via \u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage of\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to \u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e shared utility to declarative\nfile configuration for loading plugins via entry points; refactor propagator\nloading to use it\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to declarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point group, matching the\nspec's PluginComponentProvider mechanism\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e Prepare release 1.42.1/0.63b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e Preserve random trace ID flag for child spans (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e [release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e ci: Enable GitHub Merge Queue support (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e fix(config): allow deflate for OTLP HTTP exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e ci: validate changelog fragment filenames (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e feat(config): exporter plugin loading via entry points for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e feat(config): generic resource detector plugin loading for declarative config...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e sdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e feat(config): propagator plugin loading via entry points for declarative conf...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.2.2 — 2026-01-28\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [Linux]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003epidfd_open()\u003c/code\u003e +\n\u003ccode\u003epoll()\u003c/code\u003e (no busy loop). Requires Linux \u0026gt;= 5.3 and Python \u0026gt;= 3.9.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2705\u003c/code\u003e: [macOS], [BSD]: :meth:\u003ccode\u003eProcess.wait\u003c/code\u003e now uses \u003ccode\u003ekqueue()\u003c/code\u003e (no\nbusy loop).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2701\u003c/code\u003e, [macOS]: fix compilation error on macOS \u0026lt; 10.7. (patch by\n:user:\u003ccode\u003eSergey Fedorov \u0026lt;barracuda156\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2707\u003c/code\u003e, [macOS]: fix potential memory leaks in error paths of\n:meth:\u003ccode\u003eProcess.memory_full_info\u003c/code\u003e and :meth:\u003ccode\u003eProcess.threads\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2708\u003c/code\u003e, [macOS]: :meth:\u003ccode\u003eProcess.cmdline\u003c/code\u003e and :meth:\u003ccode\u003eProcess.environ\u003c/code\u003e may\nfail with \u003ccode\u003eOSError: [Errno 0] Undefined error\u003c/code\u003e (from\n\u003ccode\u003esysctl(KERN_PROCARGS2)\u003c/code\u003e). They now raise :exc:\u003ccode\u003eAccessDenied\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.1 — 2025-12-29\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2699\u003c/code\u003e, [FreeBSD], [NetBSD]: :func:\u003ccode\u003eheap_info\u003c/code\u003e does not detect small\nallocations (\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc\ncache before fetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e7.2.0 — 2025-12-23\n^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e1275\u003c/code\u003e: new :func:\u003ccode\u003eheap_info\u003c/code\u003e and :func:\u003ccode\u003eheap_trim\u003c/code\u003e functions, providing\ndirect access to the platform's native C :term:\u003ccode\u003eheap\u003c/code\u003e allocator (glibc,\nmimalloc, libmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2403\u003c/code\u003e, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2680\u003c/code\u003e: unit tests are no longer installed / part of the distribution.\nThey now live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2684\u003c/code\u003e, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to\nmissing include.\u003c/li\u003e\n\u003cli\u003e:gh:\u003ccode\u003e2691\u003c/code\u003e, [Windows]: fix memory leak in :func:\u003ccode\u003enet_if_stats\u003c/code\u003e due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/v7.0.0...v7.2.2\"\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 `openai` from 2.7.2 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.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 Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\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/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.7.2...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.2 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 2.7 wheel builds for Windows platforms by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/378\"\u003esimplejson/simplejson#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.1.0...v4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerate indented encoding in the C extension; release 4.1.0 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/376\"\u003esimplejson/simplejson#376\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.1...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExclude Pyodide wheels from PyPI uploads by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/375\"\u003esimplejson/simplejson#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/simplejson/simplejson/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eVersion 4.0.0 released 2026-04-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esimplejson 4 requires Python 2.7 or Python 3.8+. Older Python\nversions (2.5, 2.6, 3.0-3.7) are no longer supported. pip will\nnot install simplejson 4 on unsupported versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C extension now uses heap types and per-module state instead of\nstatic types and global state. This is required for free-threading\nsupport and sub-interpreter isolation. The Python-level API is\nunchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFull support for Python 3.13+ free-threading (PEP 703). The C\nextension is now safe to use with the GIL disabled (python3.14t):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConverted all static types to heap types with per-module state\u003c/li\u003e\n\u003cli\u003eAdded per-object critical sections to scanner and encoder\u003c/li\u003e\n\u003cli\u003eAdded free-threading-safe dict operations for Python 3.13+\u003c/li\u003e\n\u003cli\u003eUnified per-module state management and templated parser\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/363\"\u003esimplejson/simplejson#363\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/364\"\u003esimplejson/simplejson#364\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/365\"\u003esimplejson/simplejson#365\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/367\"\u003esimplejson/simplejson#367\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/369\"\u003esimplejson/simplejson#369\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNumerous C extension memory safety fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free and leak in encoder ident handling\u003c/li\u003e\n\u003cli\u003eFix NULL dereferences on OOM in module init and static string init\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/blob/main/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 4.1.1 released 2026-04-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003ebuild_wheels_py27\u003c/code\u003e CI job now also builds Python 2.7 wheels\nfor Windows AMD64 and Windows x86, joining the existing Py2.7\nmanylinux1 / manylinux2010 x86_64 wheels. This unblocks offline /\n\u003ccode\u003e--no-index\u003c/code\u003e installs on Py2.7-on-Windows (the original\nreporter's case), which previously had no matching binar...\n\n_Description has been truncated_","html_url":"https://github.com/yash-dagknows/e-com-app/pull/266","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yash-dagknows%2Fe-com-app/issues/266","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/266/packages"}}]}