fix(build): pin Gradle back to 9.6.1 and block the 9.7 line - #6786
Conversation
9.7.1 (bumped in #6777) fixed 9.7.0's ExecSpec stdout crash but broke Main CI two new ways, caught only on the first non-cancelled main run: - shard-core/shard-feature: the configuration-cache fingerprint crashes reloading its own same-key entries (IsInIdeaSyncValueSource CNFE in the settings-plugin classloader scope), so both shards die before running a single test. - Windows desktop: CMP's Windows packaging path trips an Isolated Projects violation (':desktopApp' cannot access Project.layout on ':'); macOS/Linux configure fresh and pass. Restore the 9.6.1 wrapper (jar, sha256, and the networkTimeout/retries hardening the bump silently dropped), keep the flatpak manifest in lockstep, widen the renovate block from 9.7.0 to the whole 9.7 line, and refresh the stale pin comments. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe project pins Gradle to 9.6.1, updates the offline verification artifact and checksum, blocks all Gradle 9.7.x Renovate updates, and documents the compatibility constraint in the Android workflow. ChangesGradle version pinning
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change is merge-ready after normal checks and review; no actionable merge-blocking risk remains. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 8✅ Passed checks (8 passed)
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 |
Why
Main CI went red on the first non-cancelled run after Renovate's Gradle 9.7.1 wrapper bump (#6777) merged. Every intermediate main run had been concurrency-cancelled by the merge train, so the bump landed effectively untested against the full main matrix. 9.7.1 does fix the 9.7.0 ExecSpec stdout crash that motivated the original 9.6.1 pin (gradle#38787 - macOS ran
:desktopApp:proguardReleaseJarsgreen), but it breaks main two new ways:Class 'org.jetbrains.kotlin.gradle.internal.IsInIdeaSyncValueSource' not found(settings-plugin classloader scope). This happened on an exact CC cache-key hit (same wrapper hash, same build-files hash), i.e. 9.7.1 cannot reread entries it wrote itself. The wrapper-hash segment in gradle-setup's cache key only guards against cross-version entries, so it cannot defend against this.Plugin 'org.jetbrains.compose': Project ':desktopApp' cannot access 'Project.layout' functionality on another project ':'. Windows-only: the MSI/WiX packaging path is what touches root-project layout; macOS and Linux configured fresh on 9.7.1 and passed.The bump also silently deleted the pin-back comment and the
networkTimeout=30000/retries=3hardening fromgradle-wrapper.properties.Failing run: https://github.com/meshtastic/Meshtastic-Android/actions/runs/32318141116
What
scripts/verify-flatpak/desktop-offline.yamlin lockstep (9.6.1 URL + sha256); the fail-fast guard from ci: keep verify-flatpak's vendored Gradle dist in lockstep with the wrapper #6785 passes locally.!/^9\.7\.0$/to!/^9\.7\./so Renovate cannot re-propose any 9.7.x until the line proves out on both counts (CC entry reload + WindowspackageDistributionForCurrentOSunder Isolated Projects).reusable-check.yml.Reverting to 9.6.1 also changes the CC cache-key prefix, which makes the poisoned 9.7.1 configuration-cache entries unreachable - no manual cache purge needed.
Testing Performed
spotlessApply spotlessCheck detekt assembleDebug test allTests- PASS, Gradle resolved 9.6.1, 6964 tests passed / 0 failed / 240 skipped.LOCKSTEP-OK(dist and sha256 match between wrapper properties and the offline manifest).renovate.jsonand both touched YAML files parse clean.🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Chores