build: update Gradle 8.14.5 and AGP 8.13.2#7
Conversation
Build-system update only (no app dependency or Kotlin changes): - Gradle 8.10.2 -> 8.14.5 - Android Gradle Plugin 8.8.1 -> 8.13.2 (requires Gradle 8.13+) Kotlin/KSP intentionally kept at 2.0.21 / 2.0.21-1.0.27: bumping Kotlin to 2.1.x switches KSP to KSP2, which breaks Room 2.6.1's generated DAO code (suspend Continuation variance mismatch). The Kotlin/KSP/Room upgrade is deferred to the app-dependencies phase where Room can move in lockstep.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughTwo build toolchain version bumps: the Gradle wrapper distribution URL is updated from 8.10.2 to 8.14.5 with the corresponding checksum, and the Android Gradle Plugin dependency in ChangesBuild Toolchain Upgrade
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
|
@coderabbitai full review Please focus on build reproducibility and Gradle/AGP compatibility. Note: Kotlin/KSP are intentionally kept at 2.0.21 because bumping to 2.1.x+ switches KSP to KSP2 which breaks Room 2.6.1 codegen (verified build failure). AGP 8.13.2 supports Kotlin 2.0.x. The Kotlin/KSP/Room upgrade is deferred to the app-dependencies phase. Both assembleOssDebug and assembleOssRelease pass on the builder. |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "=== gradle/wrapper/gradle-wrapper.properties ==="
cat gradle/wrapper/gradle-wrapper.properties
echo ""
echo "=== buildSrc/build.gradle.kts ==="
cat buildSrc/build.gradle.kts
echo ""
echo "=== buildSrc/src/main/java/Versions.kt (if exists) ==="
fd -e kt . buildSrc/src | head -20
fd -e kts . buildSrc | head -20
echo ""
echo "=== Any other version files ==="
fd "versions.gradle" . | head -5
fd "libs.versions.toml" . | head -5
cat gradle/libs.versions.toml 2>/dev/null || echo "(no libs.versions.toml)"Length of output: 1318 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "=== Checking Gradle 8.14.5 checksum from Gradle official releases ==="
# The gradle-wrapper.properties should have a distributionSha256Sum for build reproducibility
grep -i "sha256\|checksum\|verification" gradle/wrapper/gradle-wrapper.properties || echo "(no checksum found in wrapper properties)"
echo ""
echo "=== gradle-wrapper.jar hash (for wrapper integrity) ==="
sha256sum gradle/wrapper/gradle-wrapper.jar 2>/dev/null || echo "(no gradle-wrapper.jar found)"
echo ""
echo "=== gradle/verification-metadata.xml (dependency verification) ==="
ls -la gradle/ || true
cat gradle/verification-metadata.xml 2>/dev/null | head -50 || echo "(no verification-metadata.xml)"
echo ""
echo "=== settings.gradle.kts - check for pluginManagement/dependencyResolutionManagement ==="
cat settings.gradle.kts 2>/dev/null || cat settings.gradle 2>/dev/null || echo "(no settings file found at root)"
echo ""
echo "=== build.gradle.kts (root) ==="
cat build.gradle.kts 2>/dev/null || cat build.gradle 2>/dev/null || echo "(no root build file)"Length of output: 2086 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "=== repositories.gradle.kts ==="
cat repositories.gradle.kts
echo ""
echo "=== buildSrc/src/main/kotlin/Helpers.kt ==="
cat buildSrc/src/main/kotlin/Helpers.kt
echo ""
echo "=== app/build.gradle.kts (check AGP plugin application and compileSdk) ==="
cat app/build.gradle.kts 2>/dev/null || cat app/build.gradle 2>/dev/null || echo "(not found)"
echo ""
echo "=== Check if gradle-wrapper.jar is tracked ==="
git ls-files gradle/wrapper/ 2>/dev/null || echo "(git not available or no tracked files)"
echo ""
echo "=== Any .gitignore entries for wrapper ==="
grep -r "wrapper" .gitignore 2>/dev/null || echo "(no wrapper entries in .gitignore)"Length of output: 11367 🌐 Web query:
Length of output: 12630
Review: build: update Gradle 8.14.5 and AGP 8.13.2✅ Version Compatibility — All Pass
AGP 8.13.2's R8 (8.13.19) adds support for processing Kotlin 2.3 metadata, but this is additive — it will not affect output compiled with Kotlin 2.0.21.
|
Add distributionSha256Sum for gradle-8.14.5-bin.zip so the wrapper verifies the downloaded distribution against the official checksum (supply-chain hardening).
|
@coderabbitai review Added distributionSha256Sum=6f74b601...e854 (official checksum for gradle-8.14.5-bin.zip). Verified on the builder: wiped the wrapper dist cache, re-downloaded, checksum verification passed, build green. The other noted items (verification-metadata.xml, allprojects{}, KotlinJvmOptions, applicationVariants API) are pre-existing and out of scope. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "=== Current gradle-wrapper.properties ==="
cat gradle/wrapper/gradle-wrapper.properties
echo ""
echo "=== Official Gradle 8.14.5-bin.zip SHA256 ==="
curl -fsSL https://services.gradle.org/distributions/gradle-8.14.5-bin.zip.sha256Length of output: 756
All items from the full review are now resolved:
The PR is clean. Approving. [approve] |
Summary
Updates the Android build system to the latest 8.x line. Build-system only — no app
dependency or Kotlin changes.
Why Kotlin/KSP are intentionally NOT bumped here
I attempted Kotlin 2.1.21 + KSP 2.1.21-2.0.2 first. It fails the build: KSP 2.1.x
defaults to KSP2, and Room 2.6.1's generated DAO is incompatible —
Kotlin/KSP is tightly coupled to Room (an app dependency). Per the branch scope
(build system only, no app-dependency changes), the Kotlin/KSP/Room upgrade is deferred
to the app-dependencies phase, where Room can move in lockstep with Kotlin.
AGP 8.13.2 officially supports the Kotlin 2.0.x line, so keeping Kotlin 2.0.21 is a
valid, supported configuration (verified by a clean debug and release build).
Verification (AWS Linux builder)
./gradlew app:assembleOssDebug— BUILD SUCCESSFUL../gradlew app:assembleOssRelease— BUILD SUCCESSFUL (R8 minify, lintVital withwarningsAsErrors=true, resource shrinking, ART profile, core desugaring all pass).libcore.aarunchanged (not rebuilt; no core/Go changes).Scope
gradle/wrapper/gradle-wrapper.properties,buildSrc/build.gradle.kts.