Skip to content

feat(python-sdk)!: install the vendor LLM SDKs only through their extras - #412

Draft
czi-fsisenda wants to merge 1 commit into
fsisenda/sdk-python-vendor-extrasfrom
fsisenda/sdk-python-vendor-sdks-optional
Draft

czi-fsisenda wants to merge 1 commit into
fsisenda/sdk-python-vendor-extrasfrom
fsisenda/sdk-python-vendor-sdks-optional

Conversation

@czi-fsisenda

@czi-fsisenda czi-fsisenda commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Why

This is step 2 of the plan on DSCR-2648: the 2.0, held to ship with the next batch of breaking changes rather than in a major of its own. pip install learning-commons-evaluators stops installing the vendor SDKs, so a caller who injects their own llm_provider gets none of them or their pins, and everyone else installs only the providers they use.

Draft: held until we decide to cut the major. Stacked on #410 (the extras), which makes this small: anyone who follows its install lines sees no change here.

Changes

feat(python-sdk)!, with a BREAKING CHANGE footer, so release-please cuts 2.0.0:

  • openai, anthropic and google-genai move out of dependencies and live only in their extras. The comments explaining their bounds move with them.
  • README: the plain install is now for bringing your own provider.
  • The "Without vendor SDKs" CI job runs the plain install instead of uninstalling the SDKs.

Release notes

Only the install step changes. Use learning-commons-evaluators[all] to keep the 1.x set, or the extras for the providers you use. No code API changes. An install that's missing an SDK gets a ConfigurationError at construction naming the extra to add.

Testing

  • make verify passes.
  • A fresh venv with pip install . has no vendor SDK installed, and the no-vendor test passes there. Adding .[google] installs only google-genai.

🤖 Generated with Claude Code

`pip install learning-commons-evaluators` no longer installs openai,
anthropic or google-genai. Each comes from its extra (`[openai]`,
`[anthropic]`, `[google]`, or `[all]` for every one), so a caller who
injects their own `llm_provider` gets none of them or their version pins,
and one using a single provider gets only that provider's SDK.

The CI job for an install without vendor SDKs now runs the plain install
instead of uninstalling them afterwards.

BREAKING CHANGE: an install without extras no longer includes any vendor
SDK. Constructing an evaluator that uses a built-in adapter then raises a
ConfigurationError naming the extra to add. Install with
`learning-commons-evaluators[all]` to keep the 1.x set, or with the extras
for the providers you use. No code API changes.

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

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant