fix(build): pin Gradle back to 9.6.1 to unbreak desktop ProGuard - #6611
Merged
Conversation
Gradle 9.7.0 regressed BaseExecSpec: exec spec standardOutput now defaults to null instead of System.out (gradle/gradle#38787, fix targeted at 9.7.1 via gradle/gradle#38799). The Compose Multiplatform plugin's ExternalToolRunner reads the stream back on the ProGuard path, so :desktopApp:proguardReleaseJars fails on every OS on main. Pin the wrapper back to 9.6.1 and block exactly 9.7.0 in Renovate so 9.7.1 is offered as soon as it ships. The 9.7 bump's other changes (Isolated Projects flags, CC cache keys, build-logic paths) are 9.6-compatible and stay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR excludes Gradle 9.7.0 from Renovate updates and pins the Gradle wrapper to version 9.6.1 with the matching checksum. ChangesGradle version control
Estimated code review effort: 2 (Simple) | ~5 minutes Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 12, 2026
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.
Why
Main CI's desktop builds are red on every OS since the Gradle 9.7.0 bump (#6589):
:desktopApp:proguardReleaseJarsfails withgetStandardOutput(...) must not be null.Gradle 9.7.0 regressed
BaseExecSpec: the exec spec handed toExecOperations.exec {}now defaultsstandardOutputto null instead ofSystem.outas documented. Upstream has acknowledged it as a regression introduced by gradle/gradle#38061 — tracked in gradle/gradle#38787, milestoned 9.7.1, fix PR gradle/gradle#38799 open.The Compose Multiplatform plugin's
ExternalToolRunnerreadsspec.standardOutputback to tee it to a log file, but only on theLogToConsole.Alwayspath — which onlyAbstractProguardTaskuses. Hence exactly the ProGuard task failing, everywhere, and no CMP-side workaround (the read happens inside the plugin's exec closure; nothing user-configurable reaches it). CMP is unchanged through v1.12.0-rc01 and master, and per Gradle's documented API its code is correct — the fix belongs in Gradle.🛠️ Changes
gradle-wrapper.propertiesback to 9.6.1 (URL + sha256), with a comment explaining why.gradle-wrappermanager, so 9.7.1 is offered the moment it ships with the fix.isolated.rootProjectpaths) is 9.6-compatible and stays.Testing Performed
:desktopApp:proguardReleaseJarsfails with the identical stack (ExternalToolRunner.kt:68).:desktopApp:proguardReleaseJarsBUILD SUCCESSFUL.spotlessCheck detektpass.Reviewer notes
The bump PR merged green because PR CI intentionally skips desktop packaging jobs (
:desktopApp:testcovers compilation but not ProGuard packaging) — only Main CI caught it. Worth considering a targeted desktop packaging check for toolchain-touching PRs; kept out of scope here.🤖 Generated with Claude Code
Summary by CodeRabbit