| { | |
| "$schema": "https://docs.renovatebot.com/renovate-schema.json", | |
| "extends": [ | |
| // Use https://github.com/rust-lang/renovate/blob/main/actions.json | |
| "github>rust-lang/renovate:actions", | |
| // Open a PR to migrate the config when Renovate deprecates syntax | |
| ":configMigration", | |
| // Refresh lock files weekly | |
| ":maintainLockFilesWeekly", | |
| ], | |
| // Cargo manifests in this repository use unstable features. | |
| "env": { | |
| "RUSTC_BOOTSTRAP": "1" | |
| }, | |
| // The compiler and rustbook workspaces have path dependencies in these | |
| // submodules. | |
| "cloneSubmodules": true, | |
| "cloneSubmodulesFilter": [ | |
| "src/doc/book", | |
| "src/doc/reference" | |
| ], | |
| // Require manual approval from the Dependency Dashboard before opening PRs | |
| "dependencyDashboardApproval": true, | |
| // Renovate shouldn't update a PR if it is in the bors merge queue. | |
| "stopUpdatingLabel": "S-waiting-on-bors", | |
| "packageRules": [ | |
| { | |
| // No dashboard approval necessary for GitHub Actions updates | |
| "matchManagers": ["github-actions"], | |
| "dependencyDashboardApproval": false | |
| }, | |
| { | |
| // No dashboard approval necessary for lock file maintenance | |
| "matchUpdateTypes": ["lockFileMaintenance"], | |
| "dependencyDashboardApproval": false | |
| }, | |
| { | |
| // Set defaults for all Cargo.lock files. | |
| // library/Cargo.lock is grouped into a dedicated PR by the more | |
| // specific rule below. | |
| "matchManagers": ["cargo"], | |
| "matchUpdateTypes": ["lockFileMaintenance"], | |
| "groupName": "Cargo lock file maintenance", | |
| "commitMessageAction": "Compiler and tools lock file update", | |
| // Renovate merges all matching rules, so the lockfiles rules below | |
| // also inherits this note and asks Triagebot for a dep-bumps reviewer. | |
| "prBodyNotes": ["r? dep-bumps"] | |
| }, | |
| { | |
| // Update library/Cargo.lock in a dedicated PR. | |
| "matchManagers": ["cargo"], | |
| "matchUpdateTypes": ["lockFileMaintenance"], | |
| "matchFileNames": ["library/Cargo.lock"], | |
| "groupName": "library lock file maintenance", | |
| "commitMessageAction": "Library lock file update" | |
| }, | |
| { | |
| // These packages don't have a committed Cargo.lock file. | |
| "matchManagers": ["cargo"], | |
| "matchUpdateTypes": ["lockFileMaintenance"], | |
| "matchFileNames": [ | |
| "library/rustc-std-workspace-*/Cargo.toml", | |
| ], | |
| "enabled": false | |
| }, | |
| { | |
| // Update yarn.lock in a dedicated PR. | |
| "matchManagers": ["npm"], | |
| "matchUpdateTypes": ["lockFileMaintenance"], | |
| "groupName": "Yarn lock file maintenance", | |
| "commitMessageAction": "Yarn lock file update" | |
| } | |
| ], | |
| "ignorePaths": [ | |
| // Don't manage dependencies inside subtrees. They are updated upstream and | |
| // synced in. See `src/doc/rustc-dev-guide/src/external-repos.md` for the list. | |
| "compiler/rustc_codegen_cranelift/**", | |
| "compiler/rustc_codegen_gcc/**", | |
| "library/compiler-builtins/**", | |
| "library/portable-simd/**", | |
| "library/stdarch/**", | |
| "src/doc/rustc-dev-guide/**", | |
| "src/tools/clippy/**", | |
| "src/tools/miri/**", | |
| "src/tools/rust-analyzer/**", | |
| "src/tools/rustfmt/**", | |
| // Test manifests are fixtures; their versions and lockfiles may | |
| // intentionally be part of the test input. | |
| "tests/**", | |
| ] | |
| } |