docs(gradle-plugin): add 4.0.5 notes and correct the Kotlin bound - #18
Open
krassx wants to merge 3 commits into
Open
docs(gradle-plugin): add 4.0.5 notes and correct the Kotlin bound#18krassx wants to merge 3 commits into
krassx wants to merge 3 commits into
Conversation
The 4.0.3 notes stated "Kotlin 2.1 through 2.3 are unaffected". Running each line's real compiler over a Compose consumer with the bundled compiler plugin loaded disproves it: 2.2 and 2.3 abort the build with a NoSuchMethodError on irCall, whose builder receiver Kotlin 2.2 widened. The gate shipped in 4.0.3 therefore admitted two lines that break. - Adds the 4.0.4 entry describing the corrected bound (Kotlin 2.1) and the actual blast radius: only projects pairing Compose with Bugsee's :compose integration were affected, since the injection pass exits early when the Bugsee Compose runtime is absent. - Marks the incorrect statement in the 4.0.3 entry with a caution admonition rather than silently rewriting a released note. - Annotates the older "Adds Kotlin 2.3 compatibility" line, which described the plugin's own build and not the bundled compiler plugin. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: I4a7dcb9e84d28db5d9b78c9a971597394db8751e
4.0.4 was the gate-only hotfix and was never published. 4.0.5 contains it plus the restored Compose support on Kotlin 2.2-2.4, so documenting 4.0.4 would describe a version nobody can install. The entry now covers both halves: the per-Kotlin-line compiler-plugin artifacts and the automatic selection between them, and the correction to the 4.0.3 bound with the reason it was wrong. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: I6e3825c02b3eeaeabe9db07edc4598c7ad0cc8b1
The 4.0.5 entry was written when 4.0.4 was still unpublished, so the page skipped from 4.0.5 to 4.0.3. 4.0.4 has since been released and is installable, leaving a published version with no release note. Adds a short entry marking it superseded and pointing at 4.0.5. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: I3d9e5eaf3890bc22e735d6aa816dce70fec168e2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents plugin 4.0.5, which restores Compose instrumentation on Kotlin 2.2-2.4 and corrects a claim in the 4.0.3 notes.
What was wrong in 4.0.3
The entry says "Kotlin 2.1 through 2.3 are unaffected." Running each line's real compiler over a Compose consumer with the bundled compiler plugin loaded:
NoSuchMethodError: irCall(IrBuilderWithScope, …)ClassCastExceptionduring registrationKotlin 2.2 widened the
irCall/irStringbuilder receiver toIrBuilder. A compiled call site binds the exact descriptor, so the widening is binary-breaking even though the source still compiles — which is why it was missed.Blast radius of the 4.0.3 bug
Narrower than the bound suggests: on 2.2/2.3 the failure needs Bugsee's
:composeruntime on the classpath, because the injection pass exits early whenbugseeTag/bugseeSecuredo not resolve. A Compose app without Bugsee's Compose integration built normally.Changes
…-k22,…-k24) with a table of which resolves for which Kotlin, that selection is automatic, and the corrected bound.:::cautionrather than being silently rewritten — it is a released note.Validation
npx cspell "docs/**/*.md" "docs/**/*.mdx" --no-cache -c cspell.json— 0 issues.npm run build— exit 0, zero broken links.🤖 Generated with Claude Code