Jetpack Compose Compiler が Kotlin に強く依存していた時代を経て、
今では少しずつ依存関係が緩やかになってきました。
それでも Kotlin・KSP・Compose Compiler の3つは依然として密接に関係しており、
バージョンのズレひとつでビルドが崩壊するリスクがあります。
この記事では、develop ブランチをメインに運用しつつ、
それらを安全かつ一貫性を保って更新するための Renovate 設定を紹介します。
🧩 Kotlin・KSP・Compose Compiler の三位一体更新
Compose Compiler は Kotlin コンパイラと深く結びついて動作するため、
Kotlin のメジャーアップデートが入ると、それに対応した Compose Compiler が必要になります。
さらに、KSP(Kotlin Symbol Processing)も Kotlin バージョンに追随するため、
この3つは基本的に「セットで更新する」のが鉄則です。
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"baseBranches": ["develop"],
"packageRules": [
{
"groupName": "Kotlin, KSP and Compose Compiler",
"groupSlug": "kotlin",
"matchPackagePrefixes": [
"com.google.devtools.ksp",
"org.jetbrains.compose.compiler"
],
"matchPackagePatterns": [
"org.jetbrains.kotlin.*"
]
},
{
"description": "Do not automerge without CI",
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": false
}
]
}
⚙️ 設定の意図を読み解く
この設定は、単に自動更新を行うだけでなく、
Kotlin 界隈の依存を安全に、かつチームの開発フローに合わせて管理することを意識しています。
baseBranches: ["develop"]
Renovate のデフォルトは main や master に対して PR を作りますが、
実際の開発フローでは「開発用ブランチ(develop)」に更新を入れたいケースが多いですよね。
"baseBranches": ["develop"] を指定しておくことで、
更新 PR が常に develop ブランチに向けて作成されるようになります。
本番リリース前にテストや検証を挟める安全設計です。
🔗 groupName: 三つ巴のアップデートを1つにまとめる
groupName は、関連する依存をひとまとめにするためのグループ名。
ここでは "Kotlin, KSP and Compose Compiler" としており、
3つのパッケージを同時に1つの PR にまとめてくれます。
"matchPackagePrefixes": [
"com.google.devtools.ksp",
"org.jetbrains.compose.compiler"
],
"matchPackagePatterns": [
"org.jetbrains.kotlin.*"
]
この指定で次のような依存が同時更新対象になります:
- Kotlin (org.jetbrains.kotlin)
- KSP (com.google.devtools.ksp)
- Compose Compiler (org.jetbrains.compose.compiler)
以前は androidx.compose.compiler でしたが、
現在の Compose Multiplatform では org.jetbrains.compose.compiler に移行しているため、この設定がより正確です。
🚫 automerge: false の哲学
Renovate には更新を自動マージする機能がありますが、
Kotlin 系の更新はそれに向きません。
理由は単純で、CI でのビルド確認が欠かせないからです。
{
"description": "Do not automerge without CI",
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": false
}
「CI による確認を通らない限り、自動マージさせない」というルールです。
特に Kotlin の minor アップデートでは内部 API が変わることもあり、
Compose Compiler や KSP が対応していない可能性があります。
PR を作成したあと CI を通し、問題なければ手動でマージする。
これが最も安全な流れです。
🧭 運用のヒントとまとめ
この設定は、いわば「Kotlin エコシステム用 Renovate セーフティモード」。
自動化の恩恵を受けつつも、壊れやすい依存を慎重に扱うための現実的な妥協点です。
項目 | 意図 |
---|---|
baseBranches |
更新PRをdevelop 向けにして安全確認を確保 |
groupName |
Kotlin / KSP / Compose Compiler を同時に更新 |
automerge: false |
CI確認なしでの自動マージを防止 |
matchPackagePrefixes / matchPackagePatterns |
最新の Compose 構成(Compose Multiplatform 等)に対応 |
🪶 まとめ:安全第一の Renovate 運用へ
Renovate は「ただの自動更新ボット」ではなく、
チームのアップデート戦略をコード化できるツールです。
Kotlin、KSP、Compose Compiler のような密接な関係を持つ依存こそ、
グルーピングとマージ制御で慎重に扱うべき対象。
develop ベースで CI を通すこの設定は、
自動化と安全性のバランスを取る最適解のひとつと言えます。
関連ワード: Android・AndroidStudio・Git・GitHub・Gradle・iOS・JetpackCompose・KMP・Kotlin・Kotlin Multiplatform Mobile・Swift・おすすめ・ツール・今さら聞けない・便利な設定・初心者・開発