Skip to content

docs(kmp): fix debug-symbols Gradle syntax to match wrapped SDK version - #45

Merged
krassx merged 2 commits into
bugsee:mainfrom
fishmanalex:fix/kmp-debug-symbols-gradle-syntax
Sep 5, 2026
Merged

docs(kmp): fix debug-symbols Gradle syntax to match wrapped SDK version#45
krassx merged 2 commits into
bugsee:mainfrom
fishmanalex:fix/kmp-debug-symbols-gradle-syntax

Conversation

@fishmanalex

Copy link
Copy Markdown
Contributor

Summary

  • docs/sdk/kmp/debug-symbols.md and the KMP Agent Skill file both instructed bugsee { ndk { enabled.set(true) } } (nested-block syntax), and the skill file additionally suggested bugseeGradle = "4+".
  • Per gradle-plugin/releases.mdx, that nested-block NDK syntax and the 4.x plugin line are both new in the 4.x/SDK-7.x generation and explicitly not backward-compatible with SDK 6.x.
  • KMP's own release notes (sdk/kmp/release-notes.md) say the current KMP release wraps native Android SDK 6.0.2, which requires the 3.x plugin and the old boolean form ndk(true).
  • Following the instructions as written throws a Kotlin type-mismatch build error (inferred type is () -> Unit but Boolean was expected).

Changes

  • Updated both files to ndk(true) and the 3.x plugin line.
  • Added a note in both files pointing readers to check the KMP release notes for which native SDK generation is wrapped before picking a plugin line, since this will change as KMP tracks newer native SDK releases.

Test plan

🤖 Generated with Claude Code

https://claude.ai/code/session_01QnXDhVitCVmMNafPRvKUat

fishmanalex and others added 2 commits September 4, 2026 17:44
Both the debug-symbols page and the KMP Agent Skill instructed the
nested-block NDK syntax (bugsee { ndk { enabled.set(true) } }) and,
in the skill file, bugseeGradle = "4+". Per the Gradle plugin's own
release notes, that syntax and the 4.x plugin line are new in the
4.x/SDK-7.x generation and explicitly not backward-compatible with
SDK 6.x. The KMP SDK's own release notes say it currently wraps
native Android SDK 6.0.2, which requires the 3.x plugin and the
boolean form ndk(true) — following the old instructions as written
throws a Kotlin type-mismatch build error.

Updated both files to the 3.x plugin line and ndk(true), and added a
note pointing readers to check the KMP release notes for which native
SDK generation is wrapped before picking a plugin line, since this is
expected to change as KMP tracks newer native SDK releases.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Review follow-up: the previous revision told readers to set
bugseeGradle = "3.x.x". That pairing is not what the KMP repo actually
ships — the KMP 0.1.1 sample (composeApp/build.gradle.kts) uses plugin
4.0.0-beta4 with the boolean ndk(true) form, so "3.x" is an unverified
recommendation.

The boolean-vs-nested split is a plugin-line property, not an SDK-line
one: ndk(true) was valid on 3.x *and* on 4.0.0-beta4..beta9, and the
nested ndk { enabled.set(true) } block only landed in 4.0.0-beta10.

Keep ndk(true) (correct for the native SDK 6.0.2 that released KMP
wraps), restore the neutral "x.y.z" version placeholder, and document
both syntaxes so readers can adapt when KMP moves to the 7.x line.

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

Change-Id: I61747fac34e7a086231e90e496ac3ff8db1a554a
@krassx

krassx commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Validated against cross/kmp and android/gradle-plugin. The code change is right, the version guidance wasn't — I've pushed a follow-up commit (abf285f) to this branch rather than block on it.

Confirmed: ndk(true) is correct for KMP users today. Released KMP 0.1.1 (cross/kmp HEAD, 2026-05-04) wraps bugsee-android 6.0.2, and its own sample uses the boolean form:

// composeApp/build.gradle.kts @ v0.1.1
bugsee {
    appToken("...")
    ndk(true)   // upload NDK debug symbols
}

The current plugin has no Boolean overload at all — BugseePluginExtension.kt:166 only takes Action<BugseeNdkExtension> — so the previous nested-block text really was uncompilable for KMP readers.

What I changed: the bugseeGradle = "3.x.x" recommendation. That sample pairs ndk(true) with plugin 4.0.0-beta4, not 3.x, so "3.x" was an unverified pairing. And the boolean-vs-nested split turns out to be a plugin-line property rather than an SDK-line one — ndk(true) was valid on 3.x and on 4.0.0-beta4…beta9; the nested block only landed in 4.0.0-beta10 (refactor(dsl): convert ndk to a nested DSL block, 2026-05-23). So restored the neutral x.y.z placeholder and documented both syntaxes with the Type mismatch: inferred type is () -> Unit but Boolean was expected symptom, so readers can adapt rather than follow a version we haven't verified.

Heads-up on churn: cross/kmp has a large uncommitted working tree moving to bugsee-android 7.0.0-beta12 + plugin 4.0.0-beta12 + the nested DSL. This page flips back the moment that ships — the "check the release notes" framing should survive that, which is why I kept it.

Also confirmed editing docs/ai/agent-skills/sdk/kmp/SKILL.md is the right file: scripts/sync-skills.mjs treats docs/ as source of truth and generates static/, so it won't be clobbered by the prebuild hook.

cspell clean (288 files, 0 issues). LGTM to merge with the follow-up.

🤖 Generated with Claude Code

@krassx krassx left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Validated against source (see review comment above). Approving.

@krassx
krassx merged commit 2e6060b into bugsee:main Sep 5, 2026
1 check passed
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.

2 participants