{ $schema: "https://docs.renovatebot.com/renovate-schema.json", extends: [ "config:recommended", // chore(deps): … — match the repo's conventional-commit style. ":semanticCommits", ], // No automerge: a dependency bump goes through the same review (and, for // anything touching the build, the same on-device check) as a feature // before it can ride a release — see docs/RELEASING.md and the // "hold release for approval" rule. automerge: false, // One reviewable surface; the dashboard issue lists everything pending. dependencyDashboard: true, labels: ["dependencies"], prConcurrentLimit: 5, prHourlyLimit: 0, // Cadence is owned by the Gitea Actions cron (.gitea/workflows/renovate.yml, // Mondays) — no internal `schedule` here, so the two don't double-gate and // silently skip a run. // Gitea Actions workflows live under .gitea/workflows, not .github — extend // the github-actions manager (same syntax) to watch them too. "github-actions": { fileMatch: ["^\\.gitea/workflows/[^/]+\\.ya?ml$"], }, packageRules: [ // material3 is deliberately pinned to the 1.5 *alpha* line for the // Expressive APIs (see gradle/libs.versions.toml). Follow the alpha train // but keep it in its own PR, reviewed in isolation; revisit the pin when // 1.5.0 stable lands. { matchPackageNames: ["androidx.compose.material3:material3"], ignoreUnstable: false, groupName: "material3 (alpha)", }, // Test-only deps: group into one low-noise PR. { matchPackageNames: [ "org.junit.jupiter:**", "org.junit.platform:**", "com.google.truth:**", "app.cash.turbine:**", "androidx.test:**", "androidx.test.espresso:**", "androidx.test.ext:**", ], groupName: "test dependencies", }, ], }