Skip to content

docs: publish a generated framework version-compatibility page #1068

Closed

Description

@tommasobolis

Part of #1065.

Summary

Add two generated pages from the sources of truth we already have: docs/framework-support.md (the repo-side reference, sibling of docs/python-support.md) and website/content/frameworks/compatibility.mdx (the user-facing docs page). It gives one row per framework adapter: tier, pip extra, minimum supported version (the floor), tested on every PR (the lock), and known incompatible versions (§8.1). It also states the support policy and shows a live nightly status badge. A drift test fails CI whenever a floor, lock or §8.1 change isn't reflected in both outputs.

Where

  • New: python/scripts/render_compatibility.py (with --check), docs/framework-support.md and website/content/frameworks/compatibility.mdx (both generated, with a "do not edit" header), and python/tests/unit/test_compatibility_page.py.
  • Edited:
    • website/content/frameworks/_meta.js: add compatibility: 'Version compatibility' after index.
    • website/content/frameworks/index.mdx: link to the page.
    • website/content/frameworks/agent-framework.mdx:19,178,186: hard-coded agent-framework 1.19.0, already stale against the 1.20.0 lock.
    • website/content/frameworks/adk.mdx:255: hard-coded google-adk>=2.4.
    • README.md "Framework support" (README.md:104): add a one-line link to both pages.
    • docs/python-support.md: cross-link docs/framework-support.md.
    • The generated llms outputs, so docs-llms-drift stays green.

Current behavior (verified)

  • Floors: python/pyproject.toml extras (pyproject.toml:57-84), with the reasons in docs/verified-apis.md section 8.3 (:725).
  • Tested versions: python/constraints/adapter-contract-<extra>-py3.12.txt (exact pins used by PR CI, ADR 0007 rule 3).
  • Known-bad versions: the §8.1 table (verified-apis.md:682).
  • Tier: ADAPTERS[k].conformance_tested (integrations/init.py:197).
  • What users see today: tiers only, in the README and in frameworks/index.mdx. No page shows versions.

Suggested change

  • One generator, two outputs. render_compatibility.py writes both files from the same data, so they can't disagree.
    • docs/framework-support.md is the full contributor reference: the table, the CI jobs that test each framework (adapter-contract on PRs, framework-legs nightly, framework-release-watch), how to refresh the lock, and links to the §8.1 rows. It renders on GitHub, so every lock-bump PR shows a readable old → new diff of the tested versions.
    • compatibility.mdx is the user-facing page: the table, the policy blurb and the badge, linking to the md file for the details.
    • It does not live in docs/verified-apis.md, which stays the §0.3 verification ledger.
  • The table: the generator reads the four sources above. It renders a table: Framework | Tier | Extra | Minimum supported | Tested on every PR | Known incompatible. It renders the multi-package extras (langgraph, adk) as one line per package.
  • The policy blurb reads: "Supported means any release ≥ the minimum, except the listed incompatibilities. We don't cap versions (no upper pins). Newer releases are tested every night, and any new release is tested on its own within a day. If one breaks us, a public framework-release issue tracks it." Link the open framework-release issues and the nightly-matrix status badge.
  • The drift guard is a unit test that runs render_compatibility.py --check on both outputs. Every lock refresh, floor change or §8.1 edit then has to regenerate them in the same PR. That keeps "tested" accurate with no bot commits, and it closes the "docs rot" gap that ddk-docs-sync warns about.
  • Wording follows ddk-docs-authoring: the SDK-developer audience, the trademark/support boundary (§0.4), and "cite a symbol, not path:line".
  • The co-installability table from ci: test the declared support matrix — lowest-direct per extra, openai<2, Python 3.13/3.14, co-installability #769 gets a placeholder section, linked once that issue lands.

Cross-surface impact

  • core/llm/registry/tools/integrations: not affected. ADAPTERS is read, not changed.
  • TypeScript parity (planned): not affected. When TS ships, the page needs a language column or a sibling page.
  • CLI: not affected. (An optional future follow-up: have donkey doctor report installed framework versions against this data. Not requested now.)
  • Nextra docs site: the new page and the four page edits listed above.
  • docs/verified-apis.md: read only (sections 8.1 and 8.3). No row changes.
  • Repo docs: the new docs/framework-support.md, plus a cross-link from docs/python-support.md.
  • README: a one-line link.

Acceptance criteria

  • /frameworks/compatibility renders under npm run dev and lists all 8 adapters with their minimum, tested and known-bad versions, matching pyproject.toml, the locks and §8.1.
  • docs/framework-support.md renders on GitHub with the same table as the website page, plus the CI-coverage and lock-refresh sections.
  • Changing a pin in any adapter-contract-* lock without regenerating makes pytest -q fail with a clear "run render_compatibility.py" message, for either output.
  • No framework page hard-codes a version any more. Each links to the compatibility page instead.
  • docs-llms-drift and the website build are green.

Activity

  1. added
    documentationImprovements or additions to documentation
    area:docsDocs site, README, verified-apis
    priority/p2Meaningful improvement, ship soon
    size/m1-2 days, multiple files
    area:adaptersFramework adapters and connection_kwargs() (1.8, 2.8)
    on Oct 10, 2026
  2. self-assigned this
    on Oct 11, 2026
  3. tommasobolis commented on Oct 11, 2026

    @tommasobolis
    CollaboratorAuthor

    Implemented in #1095. Three deviations from the plan above:

    The co-installability table (#769) exists, so both pages link docs/co-installability.md directly.

  4. tommasobolis commented on Oct 11, 2026

    @tommasobolis
    CollaboratorAuthor

    Fixed by #1095 (merged as 7b9a95b).

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

Metadata

Metadata

Assignees

Labels

area:adaptersFramework adapters and connection_kwargs() (1.8, 2.8)area:docsDocs site, README, verified-apisdocumentationImprovements or additions to documentationpriority/p2Meaningful improvement, ship soonsize/m1-2 days, multiple files

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions