Skip to content

fix(build): pin Gradle back to 9.6.1 to unbreak desktop ProGuard - #6611

Merged
jamesarich merged 1 commit into
mainfrom
claude/desktop-build-ci-failure-fc087e
Aug 11, 2026
Merged

fix(build): pin Gradle back to 9.6.1 to unbreak desktop ProGuard#6611
jamesarich merged 1 commit into
mainfrom
claude/desktop-build-ci-failure-fc087e

Conversation

@jamesarich

@jamesarich jamesarich commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Why

Main CI's desktop builds are red on every OS since the Gradle 9.7.0 bump (#6589): :desktopApp:proguardReleaseJars fails with getStandardOutput(...) must not be null.

Gradle 9.7.0 regressed BaseExecSpec: the exec spec handed to ExecOperations.exec {} now defaults standardOutput to null instead of System.out as 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 ExternalToolRunner reads spec.standardOutput back to tee it to a log file, but only on the LogToConsole.Always path — which only AbstractProguardTask uses. 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

  • Pin gradle-wrapper.properties back to 9.6.1 (URL + sha256), with a comment explaining why.
  • Add a Renovate rule blocking exactly 9.7.0 for the gradle-wrapper manager, so 9.7.1 is offered the moment it ships with the fix.
  • Everything else from the 9.7 bump (Isolated Projects flags, CC cache keys, build-logic isolated.rootProject paths) is 9.6-compatible and stays.

Testing Performed

  • Reproduced the CI failure locally on 9.7.0: :desktopApp:proguardReleaseJars fails with the identical stack (ExternalToolRunner.kt:68).
  • With this pin: :desktopApp:proguardReleaseJars BUILD SUCCESSFUL.
  • spotlessCheck detekt pass.

Reviewer notes

The bump PR merged green because PR CI intentionally skips desktop packaging jobs (:desktopApp:test covers 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

  • Bug Fixes
    • Restored compatibility by reverting the Gradle wrapper to version 9.6.1.
    • Prevented automatic updates to the incompatible Gradle 9.7.0 release.
    • Updated the wrapper checksum and documented the related compatibility issue.

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>
@jamesarich
jamesarich merged commit 991578a into main Aug 11, 2026
2 of 6 checks passed
@jamesarich
jamesarich deleted the claude/desktop-build-ci-failure-fc087e branch August 11, 2026 18:07
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 28bc3f47-bd3a-4fa7-83f2-9cd946ce2179

📥 Commits

Reviewing files that changed from the base of the PR and between 7a42a34 and aaa815b.

📒 Files selected for processing (2)
  • .github/renovate.json
  • gradle/wrapper/gradle-wrapper.properties

📝 Walkthrough

Walkthrough

The PR excludes Gradle 9.7.0 from Renovate updates and pins the Gradle wrapper to version 9.6.1 with the matching checksum.

Changes

Gradle version control

Layer / File(s) Summary
Wrapper version policy
.github/renovate.json, gradle/wrapper/gradle-wrapper.properties
Renovate excludes Gradle 9.7.0. The Gradle wrapper uses version 9.6.1 and its matching SHA-256 checksum. Comments document the ExecOperations.exec compatibility failure.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Labels

bugfix PR tag repo Repository maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant