Skip to content

[DO NOT MERGE until 1.0 ships] Bump adk-docs to adk-kotlin 1.0.0 - #2152

Open
happyhuman wants to merge 4 commits into
mainfrom
docs-kotlin-adk-1.0-pin
Open

[DO NOT MERGE until 1.0 ships] Bump adk-docs to adk-kotlin 1.0.0#2152
happyhuman wants to merge 4 commits into
mainfrom
docs-kotlin-adk-1.0-pin

Conversation

@happyhuman

@happyhuman happyhuman commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Warning

Do not merge before adk-kotlin 1.0 is published. This PR pins versions that
do not exist yet, so the Kotlin examples project cannot resolve its
dependencies until the release lands. Opened as a draft deliberately.

Summary

KT-23, the prerequisite that unblocks every 1.0 feature. adk-docs compiles its
Kotlin snippets against the pinned SDK, so nothing new can be documented until
this moves. No snippets and no 1.0 prose here — just the pin, so the review is
small and the risky part is the verification that has to happen after the
release.

Every com.google.adk:google-adk-kotlin-* coordinate in the repo is now
1.0.0, and nothing below it remains.

Rebased onto main, which moved to 0.9.0 underneath this branch

This branch was cut when main was on 0.8.0. Since then #2191 upgraded the docs
to 0.9.0 and moved them off AdkWebServer, and the branch fell 27 commits
behind. The merge here takes main wholesale on all five conflicting files, then
re-applies the pin on top — so the diff against main is only the version
strings, with none of #2191's structural work reverted.

What changed

19 coordinates, in examples/kotlin/build.gradle.kts and the install
instructions readers copy: docs/get-started/kotlin.md,
docs/get-started/installation.md, docs/agents/models/litert-lm.md,
docs/a2a/quickstart-consuming-kotlin.md,
docs/integrations/bigquery-agent-analytics.md.

Two of those artifacts did not exist on this branch when it was opened, and the
original sweep therefore could not have found them:

2 tag-pinned permalinks in docs/agents/llm-agents.md. Both point into
adk-kotlin/blob/v0.8.0 to back a claim about how Kotlin validates output
schemas (SchemaUtils, LlmAgent). Pinned five releases back, they document
what 0.8 did rather than what a reader on 1.0 runs, so they track the pin.

What is deliberately not bumped

  • The ~42 Kotlin vX.Y.Z support badges. These are since-version markers
    sitting alongside Python v1.21.0 and Java v1.5.0, recording the release a
    feature landed in. Bumping them would assert that e.g. artifacts first
    shipped in Kotlin 1.0. Same reasoning for the "added in adk-kotlin 0.8.0" and
    "Since adk-kotlin 0.7.0" comments in CapitalAgent.kt and
    CountInvocationPlugin.kt.
  • Skill-script help text and test fixtures — examples rather than pins.
  • The README's Maven Central badge, which is dynamic.

The API reference has to ship with this, and still cannot be built

docs/api-reference/kotlin/ is generated Dokka output. Its index renders
0.5.0 and 1,674 files carry that string — now six releases behind, not five.
Leaving it means "adk-docs is on 1.0" would be false the moment this merges, so
it belongs in this PR.

It cannot be produced today, for the same reason the pin cannot be compiled:
tools/kotlin-api-docs/generate.sh does git clone --branch v1.0.0, and that
tag does not exist. The generator also needs ANDROID_HOME with
platforms;android-34, because adk-kotlin has androidMain source sets.

This does not build yet, and that is expected

git ls-remote --tags https://github.com/google/adk-kotlin returns v0.9.0
as the newest tag, and maven-metadata.xml for google-adk-kotlin-core lists
<release>0.9.0</release>. Nothing is wrong with the change; the artifacts
simply are not there.

Note that CI will go green anyway, and that is not evidence. The
kotlin-snippets-pr-check job only builds .kt files changed in the PR, and
this PR changes none — so it will compile nothing at all. Exactly the gap that
let the 0.8.0 bump (#2143) merge with a snippet that no longer compiled.

Verification

verify_snippets.py --fast is the most that can run today:

pinned (build.gradle.kts) : 1.0.0
latest (Maven Central)    : 0.9.0
dokka  (in-repo API ref)  : 0.5.0

[FAIL] L0 symbols: no trusted grounding source
[PASS] L3 markdown structure (includes resolve, no orphaned tabs)
[PASS] L5 registration (files_to_test.txt complete)
[PASS] L6 language badge (Kotlin advertised wherever Kotlin is shown)

The L0 failure is the correct outcome, not a defect in this change: there is no
adk-kotlin 1.0.0 anywhere to check symbols against, and the tool refuses to fall
back to the 0.5.0 Dokka bundle rather than validate against a stale API. L1, L2
and L4 need a JVM and a resolvable dependency, so they are unrunnable until the
release lands.

Pre-merge checklist

Once 1.0.0 is on Maven Central, before merging:

  • Confirm the published version string really is 1.0.0 and not 1.0.0-rc.1
    or similar — 19 coordinates and 2 permalinks assume it.
  • JAVA_HOME=<jdk17> ./tools/kotlin-snippets/runner.sh build — the full
    regression, not the changed-files subset.
  • JAVA_HOME=<jdk17> ./tools/kotlin-snippets/runner.sh lint.
  • verify_snippets.py with no --fast, so L0/L1/L2/L4 actually execute.
  • Re-check the two third-party pins whose comments this PR retargets: Ktor
    2.3.13 and a2a-java-sdk-client:1.0.0.Final. A major release is where a
    transitive version moves.
  • Diff the public API for source-breaking changes before assuming the
    snippets survive. At 0.8.0, BaseTool.run widened its args from
    Map<String, Any> to Map<String, Any?> and broke MultiAgentExample.kt;
    a major release is likelier to carry more.
  • Regenerate the API reference and commit it here:
    bash tools/kotlin-api-docs/generate.sh 1.0.0 (needs JDK 17 and
    ANDROID_HOME with platforms;android-34). Confirm afterwards that
    docs/api-reference/kotlin/index.html renders 1.0.0, not 0.5.0.
  • Confirm the two adk-kotlin/blob/v1.0.0/... permalinks in
    docs/agents/llm-agents.md resolve — the paths are assumed unmoved from
    v0.8.0.

Process note on sweeping for versions

Two patterns have now each missed a real coordinate at a bump:

  • google-adk-kotlin[a-z-]*:0\.8\.0 excludes digits, so it skipped
    google-adk-kotlin-a2a while matching everything else — which made the search
    look complete. Fixed in c0a56767.
  • Searching only for the previous version misses artifacts added since the
    branch was cut, which is how litertlm and integrations were nearly left at
    0.9.0 here.

What works is matching the coordinate with any version and asserting the
complement is empty:
com\.google\.adk:google-adk-kotlin[a-z0-9-]*:[0-9]+\.[0-9]+\.[0-9]+, then
filtering out the target. Worth reusing at the next bump.

KT-23. adk-docs compiles its Kotlin snippets against the pinned SDK, so no 1.0
feature can be documented until this pin moves. Prerequisite only - no snippets,
no prose about 1.0 features.

Moves the examples pin (core, webserver, processor, a2a) and the install
instructions readers copy from, which track the pin for the same reason they did
at 0.8.0: leaving them behind hands newcomers an SDK older than the snippets on
the same page.

THIS DOES NOT BUILD YET, and cannot until the artifacts are published:

    > Could not find com.google.adk:google-adk-kotlin-core:1.0.0.
    > Could not find com.google.adk:google-adk-kotlin-webserver:1.0.0.
    > Could not find com.google.adk:google-adk-kotlin-a2a:1.0.0.

Maven Central carries 0.8.0 as the newest release for every artifact today, and
google/adk-kotlin has no v1.0.0 tag. The PR is a draft until the release lands.

Two comments that pinned third-party versions against adk-kotlin 0.8.0's
catalog - Ktor 2.3.13 and a2a-java-sdk-client 1.0.0.Final - now say the match
was made against 0.8.0 and needs re-checking, rather than restating it as though
it still held. A major release is exactly where a transitive version moves.

Also note the version string is assumed to be `1.0.0`. If the release is cut as
`1.0.0-rc.1` or similar, these five coordinates need to match it.
@netlify

netlify Bot commented Aug 19, 2026

Copy link
Copy Markdown

Deploy Preview for adk-docs-preview ready!

Name Link
🔨 Latest commit 38c3947
🔍 Latest deploy log https://app.netlify.com/projects/adk-docs-preview/deploys/6a9b055615a013000884611c
😎 Deploy Preview https://deploy-preview-2152--adk-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Missed on the first pass, and the reason is worth recording: the sweep used
`google-adk-kotlin[a-z-]*:0\.8\.0`, whose character class has no digits, so it
silently skipped `google-adk-kotlin-a2a` - the one artifact with a digit in its
name. Every other coordinate matched, so the search looked exhaustive and was
not.

The corrected pattern is `google-adk-kotlin[a-z0-9-]*:[0-9]+\.[0-9]+\.[0-9]+`.
Run repo-wide it now finds five live coordinates in the examples build file and
seventeen in the docs, all at 1.0.0, and nothing left below it.
# Conflicts:
#	docs/a2a/quickstart-consuming-kotlin.md
#	docs/agents/models/litert-lm.md
#	docs/get-started/installation.md
#	docs/get-started/kotlin.md
#	examples/kotlin/build.gradle.kts
main moved to 0.9.0 (#2191) after this branch was cut, so the merge above
took main wholesale and this re-applies the 1.0 pin on top. Two coordinates
are new since the branch was opened and were never in the original bump:

- `google-adk-kotlin-litertlm` in `docs/agents/models/litert-lm.md`
- `google-adk-kotlin-integrations` in
  `docs/integrations/bigquery-agent-analytics.md` (arrived with #2147, the
  reconciliation the original PR description flagged as owed)

Also bumps the two tag-pinned `adk-kotlin/blob/v0.8.0` source links in
`docs/agents/llm-agents.md`. Those point at `SchemaUtils` and `LlmAgent` to
back a claim about how Kotlin validates output schemas; pinned to a tag five
releases behind, they document what 0.8 did, not what a reader on 1.0 runs.

19 coordinates and 2 permalinks. No `com.google.adk:google-adk-kotlin-*`
coordinate below 1.0.0 remains anywhere in the repo.

Deliberately untouched, because they record history rather than a pin:
the ~42 `Kotlin vX.Y.Z` support badges (bumping them would assert that e.g.
artifacts first shipped in Kotlin 1.0), and the "added in adk-kotlin 0.8.0"
/ "Since adk-kotlin 0.7.0" comments in CapitalAgent.kt and
CountInvocationPlugin.kt.

Still unbuildable and still a draft: Maven Central's newest
google-adk-kotlin-core is 0.9.0 and google/adk-kotlin's newest tag is v0.9.0,
so there is no 1.0.0 to resolve. `verify_snippets.py --fast` passes L3, L5 and
L6 and refuses L0 for exactly that reason -- no grounding source exists at the
target version. The bundled Dokka API reference under docs/api-reference/kotlin
still renders 0.5.0 across 1,674 files and cannot be regenerated until the tag
exists; it remains on the pre-merge checklist.
@happyhuman
happyhuman marked this pull request as ready for review September 4, 2026 17:59
@happyhuman
happyhuman marked this pull request as draft September 4, 2026 18:05
@happyhuman
happyhuman marked this pull request as ready for review September 4, 2026 18:22
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.

2 participants