Skip to content

chore(deps): weekly dependency update - #911

Merged
Abhijeet Prasad (AbhiPrasad) merged 4 commits into
mainfrom
deps/weekly-update-2026-10-12
Oct 13, 2026
Merged

Abhijeet Prasad (AbhiPrasad) merged 4 commits into
mainfrom
deps/weekly-update-2026-10-12

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated weekly dependency update via python scripts/update-matrix-latest.py, advancing the uv exclude-newer cutoff, and uv lock --upgrade.

⚠️ Provider SDK packages changed. A human needs to re-record cassettes locally before merging.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T15:10:03.812234Z 26187e5 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e7176296d4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "Codex (@codex) address that feedback".

Comment thread py/pyproject.toml

[tool.braintrust.matrix.openai]
latest = "openai==3.24.0"
latest = "openai==3.29.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-record latest cassettes before accepting provider bumps

The latest provider versions now advance across several minor releases, but this commit changes only pyproject.toml and uv.lock; the checked-in recordings still identify the previous clients—for example, OpenAI cassettes contain 3.24.0, Anthropic 1.11.0, Google GenAI 2.28.0, and Mistral 3.0.0. Because CI uses replay-only VCR, the new clients receive old response payloads, so passing integration sessions cannot detect response-shape or wire-format changes in the versions introduced here. Re-record the affected cassettes/latest directories, including integrations that consume these providers as auxiliary dependencies, and validate playback before merging.

AGENTS.md reference: AGENTS.md:L201-L205

Useful? React with 👍 / 👎.

pydantic-ai 2.55.0 dropped Python 3.10 (requires_python >=3.11), so the
latest pin can't install on 3.10. Gate the integration, logfire and
wrap_openai latest sessions, and skip installing it in pylint on 3.10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-record latest cassettes for openai (incl. btx), anthropic, litellm,
dspy, google_genai, pydantic_ai and strands. Update dspy's expected
token counts to match the new recording.

Kept existing cassettes where re-recording isn't possible: mistral
(rate limited), huggingface_hub (providers no longer serve the pinned
models), anthropic server tool spans (live web search drift) and
litellm text completion (model retired).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef05c5aac8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread py/pyproject.toml
# provider use, while still keeping the same chat_completion /
# text_generation / feature_extraction / sentence_similarity method names.
latest = "huggingface-hub==2.1.1"
latest = "huggingface-hub==2.2.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-record the Hugging Face 2.2 cassette set

The fresh evidence after the prior cassette comment is that this revision adds many cassette updates but none under integrations/huggingface_hub/cassettes/latest; those fixtures still advertise hf_hub/1.15.0 even though this pin advances from 2.1.1 to 2.2.0. Consequently, test_huggingface_hub(latest) in replay-only CI continues exercising old HTTP payloads rather than the newly selected client/server behavior, so this provider bump remains unvalidated until that latest directory is re-recorded and replayed.

AGENTS.md reference: AGENTS.md:L201-L205

Useful? React with 👍 / 👎.

Comment thread py/pyproject.toml

[tool.braintrust.matrix.anthropic]
latest = "anthropic==1.11.0"
latest = "anthropic==1.13.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Finish refreshing the Anthropic latest cassettes

Although most Anthropic recordings were refreshed, cassettes/latest/test_anthropic_messages_sync_server_tool_spans.yaml is unchanged and still records Anthropic/Python 1.11.0 and x-stainless-package-version: 1.11.0. When CI runs this server-tool test against the new 1.13.0 pin, VCR therefore returns the old payload and cannot detect request or response-shape changes for this path; re-record this remaining fixture with 1.13.0.

AGENTS.md reference: AGENTS.md:L201-L205

Useful? React with 👍 / 👎.

Comment thread py/pyproject.toml
# 1.92.0 only publishes Linux wheels through CPython 3.13, but the test
# matrix also covers Windows and CPython 3.14.
latest = "litellm==1.104.0"
latest = "litellm==1.105.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Finish refreshing the LiteLLM latest cassettes

The refreshed set omits both test_litellm_text_completion_metrics[async].yaml and [sync].yaml, whose request headers still identify litellm/1.104.0. Under the 1.105.0 latest session, replay-only CI will run these text-completion paths against the prior release's recordings, leaving this API surface unvalidated; re-record both remaining fixtures with the new pin.

AGENTS.md reference: AGENTS.md:L201-L205

Useful? React with 👍 / 👎.

pylint skips the pydantic-ai matrix latest pin on 3.10 (it requires
3.11+), which left pydantic_ai imports unresolved. Add pydantic-ai to
the lint dependency group so 3.10 gets a lock-resolved compatible
version; 3.11+ still installs the matrix latest pin over it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 26187e590c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread py/pyproject.toml

[tool.braintrust.matrix.anthropic]
latest = "anthropic==1.11.0"
latest = "anthropic==1.13.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Refresh the remaining Anthropic events cassette

Beyond the previously identified server-tool fixture, test_anthropic_beta_sessions_events_send_and_stream.yaml is also unchanged and all seven requests still identify Anthropic/Python 1.4.0. Since test_anthropic(latest) runs this VCR-marked managed-agent events path whenever the 1.13.0 client exposes it, replay-only CI will continue validating old request/response shapes rather than the newly pinned client; re-record this cassette with the rest of the latest set.

AGENTS.md reference: AGENTS.md:L196-L204

Useful? React with 👍 / 👎.

@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) merged commit 14e1a60 into main Oct 13, 2026
83 checks passed
@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) deleted the deps/weekly-update-2026-10-12 branch October 13, 2026 15:12
Abhijeet Prasad (AbhiPrasad) added a commit that referenced this pull request Oct 13, 2026
## AI Summary

Adds Python 3.15 to the `static_checks`, `smoke`, and sharded `nox`
matrices in `checks.yaml`, and fixes two SDK behavior changes that only
show up on 3.15.

### SDK fixes (3.15 only)

- **PEP 810 lazy imports broke auto-instrumentation.**
`_resolve_attr_path` uses `inspect.getattr_static`, which on 3.15
returns the unreified `types.LazyImportType` proxy for names bound
through `__lazy_modules__`. google-cloud-discoveryengine's GAPIC
`__init__` already ships this way, so `auto_instrument()` silently
returned `False` for it. We now reify the proxy with a plain `getattr`
on the module; unresolvable proxies resolve to `None`. On 3.10–3.14
`types.LazyImportType` doesn't exist, so the new branch never runs.
- **`importlib.metadata` raises `MetadataNotFound` (a
`FileNotFoundError`)** for a lone `.dist-info` without METADATA (e.g. an
interrupted install). Before 3.15, `version()` returned `None`.
`span_origin._sdk_version()` (runs on every span),
`detect_module_version()`, and `BaseIntegration.detect_version()` only
caught `PackageNotFoundError`. They now also catch `FileNotFoundError`.

Both fixes went red → green, with tests skipped below 3.15. The
lazy-import tests use a real PEP 810 package written to `tmp_path`, not
mocks.

### Sessions skipped on 3.15 (upstream packaging gaps)

These dependencies have no cp315 wheels, and their sdists fail to build
(mostly PyO3 < 0.27, which refuses 3.15), or they declare
`Requires-Python < 3.15`. Caps live in `nox_session_constraints.py` with
the blocking package noted, so they can be dropped as wheels land:

| Session | Blocker |
|---|---|
| `test_litellm(latest)`, `test_dspy(latest)`, `test_harbor` | fastuuid
(via litellm) |
| `test_langchain`, `test_deepagents` | ormsgpack (via
langgraph-checkpoint) |
| `test_instructor` | jiter<0.11 |
| `test_openrouter(latest)` | pydantic-core 2.41 |
| `test_transformers(latest)` | sentencepiece |
| `test_openai_ddtrace` | ddtrace requires Python < 3.15 |

`test_langchain`, `test_openrouter`, and `test_openai_ddtrace` now call
`_skip_if_incompatible`, so local `nox -s` also skips them on 3.15.
Before this, only the CI sharder filtered them out.

### pylint on 3.15

- The lint group gates dspy, instructor, litellm, and livekit-agents
behind `python_version<'3.15'` (livekit-blingfire has no cp315 dist at
all). It adds `jiter>=0.11; python_version>='3.15'` so 3.15 isn't stuck
on instructor's `jiter<0.11`.
- The pylint session's pipecat special case is generalized into a
max-Python table. Integrations whose package couldn't be installed are
excluded from the lint file list.
- Bumps pylint 4.0.5 → 4.1.2 (astroid 4.0.4 → 4.3.4). astroid 4.0.4
reports `E1120` for every `dataclasses.KW_ONLY` constructor call on
3.15. The bump surfaced one false positive (`E1121` on an explicit
`classmethod.__func__` call in `pydantic_ai/patchers.py`), now silenced
with an inline disable.

### `uv.lock`

The jiter marker makes uv fork the resolution by Python version, hence
the large diff. No package versions were added or removed. Before the
pylint bump, I compared the effective pins for all 30 dependency groups
× Python 3.10–3.14 × Linux/Windows against `main`: 300/300 identical.
The pylint bump then changes only pylint and astroid. `test-litellm`
also pins `orjson==3.12.0` on 3.15 only. 3.11.8 has no cp315 wheels, and
its sdist fails on the runners' stable Rust (`#![feature]` on the stable
channel).

## Validation (local, Linux)

- 3.15.0: smoke install/import ✅, `pylint` ✅, `test_types` ✅,
`test_core` ✅ (1022 passed).
- 3.15.0: all nox sessions the sharder assigns ✅ (70 after merging the
#911 dependency update). Before this change, 15 of 83 failed: the 14
install-blocked sessions, plus `test_google_discoveryengine` from the
lazy-import bug. With #911's newer cutoff, `test_dspy(2.6.0)` installs
and passes on 3.15, so 13 remain skipped. I re-probed all 13 with the
caps lifted after the merge; they still fail to install.
- 3.10.22 and 3.14.6: `pylint` ✅ and `test_core` ✅ (1012 and 1017
passed).
- Windows + 3.15 was not tested locally; this PR's CI is the first run.

Note: some packages (pydantic-core 2.46.5, pyyaml, aiohttp, polyleven,
…) build from sdist on 3.15, so the first 3.15 jobs will be slower until
wheels land.

## Follow-up (not in this PR)

`__lazy_modules__` is a no-op before 3.15. Deferring `jsonschema`,
`tqdm`, `asyncio`, `slugify`, and `gzip` measured roughly 25% off
`import braintrust` on 3.15 (about 298 ms → 224 ms). That's worth a
separate PR with benchmarks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- sfk:bot-coauthor -->
Co-authored by @starfolkai[bot]

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant