Update/libs#292
Conversation
WalkthroughコンパイルSDK、Kotlin/KSP、AndroidX/Compose、Room、Koinなど複数の依存バージョンとGradleラッパーを更新し、ビルド生成されたスクリーンショットテストのレポート出力ファイル群を削除しました(公開APIの変更はなし)。 Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
AndroidApp/gradle/libs.versions.toml (1)
4-6: Android SDK バージョン設定の確認compileSdk = "36"(Android 16)への引き上げは、ビルド時の要件を満たす前にテストが必要です。targetSdk = "35"のままの場合、アプリがAndroid 16の動作変更(エッジツーエッジ強制、予測的バック動作、MediaStore バージョンロック、新しいヘルスパーミッションなど)にオプトインされません。compileSdk=36を使用する場合は、Android 16の動作変更に対応した上で、targetSdk も36に更新することを検討してください。現在の設定は技術的には有効ですが、アップグレードの完全性と機能の互換性を確認してください。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
AndroidApp/gradle/libs.versions.toml(2 hunks)AndroidApp/gradle/wrapper/gradle-wrapper.properties(1 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/.html(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/base-style.css(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/style.css(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/index.html(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/js/report.js(0 hunks)
💤 Files with no reviewable changes (5)
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/.html
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/base-style.css
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/index.html
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/style.css
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/js/report.js
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (4)
AndroidApp/gradle/wrapper/gradle-wrapper.properties (1)
3-3: Gradle ラッパーバージョンアップデート認可パッチバージョンの更新(8.14.2 → 8.14.3)は安全です。互換性の問題は予想されません。
AndroidApp/gradle/libs.versions.toml (3)
21-24: Compose BOM と関連ライブラリの互換性確認Compose BOM を 2025.10.00 から 2025.12.00 へアップデートし、関連するライブラリもアップデートしています。BOM を使用している場合、通常は依存関係が管理されますが、以下の点を確認してください:
- すべての Compose ライブラリが新しい BOM バージョンと互換性があること
- Compose UI のテストがすべてパスすること
20-20: Splash screen ライブラリの互換性確認Splash screen を 1.0.1 から 1.2.0 へアップデートしています。このバージョンジャンプでは API が変更されている可能性があります。既存のスプラッシュスクリーン実装が新しいバージョンと互換性があることを確認してください。
17-17: パッチバージョンおよびマイナーバージョン更新の承認AndroidX Core(1.16.0 → 1.17.0)、AndroidX Test Ext(1.2.1 → 1.3.0)、Koin(4.1.0 → 4.1.1)の更新は安全です。これらのバージョン更新は通常、互換性を保ちながらバグ修正と機能追加が行われます。
Also applies to: 28-28, 31-31
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (16)
AndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppListComponentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppOutlinedButtonComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppScaffoldComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/CategoryComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/CommonDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/DetailContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/EmptyAppListComponentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/EmptyViewComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/MainContentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/RequireNotificationPermissionDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/RequirePackageVisibilityDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SelectionContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SettingsContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SubContentTopBarComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/TargetContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/TopBarComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.png
📒 Files selected for processing (2)
AndroidApp/gradle.properties(1 hunks)AndroidApp/gradle/libs.versions.toml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (3)
AndroidApp/gradle.properties (1)
23-23: ✅ KSP2 有効化は KSP 2.3.3 アップグレードと一貫性がある新しく追加された
ksp.useKSP2=trueプロパティは、gradle/libs.versions.tomlの KSP バージョン 2.3.3 アップグレードと一貫しています。これは前回のレビューコメントで推奨された KSP2 への移行を適切に実装しています。AndroidApp/gradle/libs.versions.toml (2)
14-15: ✅ KSP 2.3.3 (KSP2) への適切なアップグレードKSP を 2.3.3 にアップグレードしたことで、前回のレビューで推奨された KSP2 への移行が実装されています。KSP 2.3.3 は Kotlin 2.2.21 と互換性があり、Room 2.8.4 や他のアノテーションプロセッサと適切に機能する設計になっています。
gradle.propertiesでのksp.useKSP2=true設定と相互に補完されています。
30-30: Room 2.8.4 アップグレードの検証が必要Room を 2.8.4 に更新しています。前回のレビューで指摘されたように、以下の検証が必要です:
- データベーススキーマの再エクスポート - Room Gradle Plugin の schemaDirectory 設定を確認し、スキーマを再エクスポート
- 既存マイグレーションテストの実行 - MigrationTestHelper を使用したマイグレーションテストがすべて成功することを確認
- データベース関連テストの実行 - DAO テストとデータベース関連テストを実行
Room 2.8.4 はバグ修正リリースですが、2.8.0 からの変更(minSdk API 23 要件など)により、互換性確認が重要です。プロジェクトの minSdk が 35 であるため要件は満たしていますが、スキーマとマイグレーションの動作確認は必須です。
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai re-review |
|
@ptkNktq: I'll perform a full re-review of all the changes in this PR. ✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
AndroidApp/gradle/libs.versions.toml (1)
15-15: コメント更新の提案 - KSP2 では Kotlin バージョンとの厳密な結合は不要です。Line 15 のコメント「Kotlinのバージョンに合わせる必要がある」は KSP1(古い形式)を前提としています。KSP 2.3.0 以降は Kotlin コンパイラバージョンとの結合から脱却しており、Kotlin バージョン上の制限が少なくなりました。
KSP 2.3.3 は Kotlin 2.2.21 と完全に互換性があるため、コメントを以下に更新することをお勧めします:
- com-google-devtools-ksp = "2.3.3" # Kotlinのバージョンに合わせる必要がある + com-google-devtools-ksp = "2.3.3" # KSP2: Kotlin バージョンからの依存が軽減された
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (16)
AndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppListComponentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppOutlinedButtonComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/AppScaffoldComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/CategoryComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/CommonDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/DetailContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/EmptyAppListComponentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/EmptyViewComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/MainContentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/RequireNotificationPermissionDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/RequirePackageVisibilityDialogComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SelectionContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SettingsContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/SubContentTopBarComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/TargetContentScreenshotTest_9a71c18a_da39a3ee_0.pngis excluded by!**/*.pngAndroidApp/ui/src/debug/screenshotTest/reference/me/nya_n/notificationnotifier/ScreenshotTest/TopBarComponentScreenshotTest_da39a3ee_da39a3ee_0.pngis excluded by!**/*.png
📒 Files selected for processing (8)
AndroidApp/gradle.properties(1 hunks)AndroidApp/gradle/libs.versions.toml(2 hunks)AndroidApp/gradle/wrapper/gradle-wrapper.properties(1 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/.html(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/base-style.css(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/style.css(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/index.html(0 hunks)AndroidApp/ui/build/reports/screenshotTest/preview/debug/js/report.js(0 hunks)
💤 Files with no reviewable changes (5)
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/style.css
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/css/base-style.css
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/index.html
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/.html
- AndroidApp/ui/build/reports/screenshotTest/preview/debug/js/report.js
🔇 Additional comments (4)
AndroidApp/gradle/wrapper/gradle-wrapper.properties (1)
3-3: Gradle 8.14.3 へのパッチバージョン更新は問題ありませんGradle 8.14.2 から 8.14.3 への更新で、Gradle 8.14.3 は 2025 年 7 月 4 日に公式リリースされた有効なバージョンです。パッチリリースであり、バグ修正のみが含まれるため、破壊的変更はなく、この変更は安全です。
AndroidApp/gradle.properties (1)
22-23: KSP2 の有効化が正しく設定されています。
ksp.useKSP2=trueにより KSP2 が明示的に有効化されており、KSP 2.0.0 以降では KSP2 がデフォルトで有効になっていますが、この明示的な設定により確実に KSP2 が使用されます。これは Room 2.8.4 の annotation processor との互換性を確保するために重要です。また、
android.experimental.enableScreenshotTest=trueにより UI screenshot テストが有効化されており、PR での画面テスト成果物の削除と整合しています。AndroidApp/gradle/libs.versions.toml (2)
30-30: Room 2.8.4 への移行 - データベーススキーマの再エクスポート確認が必要です。Room を 2.7.2 から 2.8.4 にアップグレードしています。Room 2.8.4 はバグ修正リリースですが、スキーマの再エクスポートと既存マイグレーションテストの実行が推奨されます。
以下のコマンドで Room スキーマを確認してください:
#!/bin/bash # Description: Room schema が正しくエクスポートされていることを確認 # Room スキーマの再構築(Room Plugin が設定されている場合) echo "=== Rebuilding Room Schema ===" ./gradlew :AndroidApp:app:clean :AndroidApp:app:build # スキーマファイルの確認 echo "=== Checking Room Schema Files ===" find . -path "*/schemas/*" -name "*.json" -type f # マイグレーションテストの実行(存在する場合) echo "=== Running Migration Tests ===" ./gradlew :AndroidApp:app:testDebugUnitTest -Pandroid.testInstrumentationRunnerArguments.filter=*Migration* || echo "No migration tests found"確認項目:
- ✓ Room スキーマ JSON が正しくエクスポートされていることを確認
- ✓ 既存のデータベースマイグレーション(存在する場合)が正常に機能することを確認
- ✓ スキーマの検証エラーが発生していないことを確認
14-15: KSP2 へのアップグレードが正しく実装されました。KSP を 2.3.3(KSP2)にアップグレードし、Kotlin 2.2.21 と整合させた点が評価できます。KSP2 は Kotlin コンパイラバージョンとの結合から脱却し、Kotlin バージョン対の制限が減少しました。これにより、KSP 2.0.0 以降では KSP2 がデフォルトで有効になっており、Gradle プロパティで制御できます。
ただし、複数の重要なライブラリ(Compose BOM 2025.12.00、Room 2.8.4、Koin 4.1.1)が同時にアップグレードされているため、以下の検証が必須です:
- ✓ Gradle sync が成功することを確認
- ✓ app の assemble がエラーなく完了することを確認
- ✓ ユニットテストがすべてパスすることを確認
- ✓ 計装テスト(Android テスト)が実行できることを確認
- ✓ Room スキーマが正しく生成されていることを確認
Room 2.8.4 は Kotlin 2.2.21 と KSP2 をサポートしており、このアップグレード戦略は適切です。ビルドとテストの成功確認をお願いします。
Summary by CodeRabbit
リリースノート
Chores
Tests
✏️ Tip: You can customize this high-level summary in your review settings.