ADR-001: First migration family¶
Status¶
Accepted; amended by ADR-050 and ADR-051.
Decision¶
The first v0 migration family is google-generativeai ->
google-genai, shipped as the bundled pack
gemini/google-generativeai-to-google-genai. The rule kind registry (ADR-006) was proven against
this one family first; a second family, PyPDF2 -> pypdf (ADR-051), shows that the pack format
and not Gemini is what the engine depends on. There is no "any SDK" abstraction beyond the kinds.
Chosen because the old SDK reached end of life on 2025-11-30 yet still installs,
the corpus is large enough for the dev/holdout benchmark (docs/BENCHMARK.md),
no codemod exists for it, so that benchmark's ground truth is hand-labelled, and
every rule can cite Google's official side-by-side guide:
https://ai.google.dev/gemini-api/docs/migrate.
Consequences¶
- The parts that are not 1:1 (the automatic function calling default, safety enum names,
the embedding response shape, client setup in another module) are declared in the pack's
limitationsand reported asneeds_review. - Repositories that declare a Python below the pack's
to.requires_python(>=3.10) cannot installgoogle-genai, so scan reports them asblocked: runtime_unsupportedinstead of proposing a migration.