|
1 | 1 | { |
2 | | - $schema: "https://docs.renovatebot.com/renovate-schema.json", |
3 | | - extends: ["mergeConfidence:all-badges", "group:monorepos"], |
| 2 | + $schema: 'https://docs.renovatebot.com/renovate-schema.json', |
| 3 | + extends: ['mergeConfidence:all-badges', 'group:monorepos'], |
4 | 4 | dependencyDashboard: true, |
5 | | - rangeStrategy: "replace", |
| 5 | + rangeStrategy: 'replace', |
6 | 6 | automerge: false, |
7 | 7 |
|
8 | 8 | // Schedule Renovate to run during off-peak hours |
9 | 9 | schedule: [ |
10 | | - "after 10:00pm every weekday", |
11 | | - "before 5:00am every weekday", |
12 | | - "every weekend", |
| 10 | + 'after 10:00pm on Monday, Wednesday, Friday', |
| 11 | + 'before 5:00am on Monday, Wednesday, Friday', |
13 | 12 | ], |
| 13 | + |
14 | 14 | prConcurrentLimit: 8, |
15 | 15 | prHourlyLimit: 4, |
16 | | - timezone: "America/Tijuana", |
| 16 | + timezone: 'America/Tijuana', |
17 | 17 |
|
18 | 18 | // Commit and PR customization |
19 | | - commitBody: "See associated pull request for more information.", |
20 | | - semanticCommits: "enabled", |
21 | | - semanticCommitScope: "", |
22 | | - semanticCommitType: "build", |
23 | | - labels: ["area: build & ci", "action: merge", "target: automation"], |
| 19 | + commitBody: 'See associated pull request for more information.', |
| 20 | + semanticCommits: 'enabled', |
| 21 | + semanticCommitScope: '', |
| 22 | + semanticCommitType: 'build', |
| 23 | + labels: ['area: build & ci', 'action: merge', 'target: automation'], |
24 | 24 |
|
25 | 25 | lockFileMaintenance: { |
26 | 26 | enabled: true, |
|
33 | 33 |
|
34 | 34 | // Ignored dependencies in all repositories |
35 | 35 | ignoreDeps: [ |
36 | | - "rules_pkg", |
37 | | - "yarn", // Yarn is copied locally in all repositories where needed. |
| 36 | + 'rules_pkg', |
| 37 | + 'yarn', // Yarn is copied locally in all repositories where needed. |
38 | 38 | ], |
39 | 39 |
|
40 | 40 | packageRules: [ |
|
48 | 48 | { |
49 | 49 | postUpgradeTasks: { |
50 | 50 | commands: [ |
51 | | - "git restore .npmrc || true", // In case `.npmrc` avoid a hard error. |
52 | | - "bazel mod deps --lockfile_mode=update", |
| 51 | + 'git restore .npmrc || true', // In case `.npmrc` avoid a hard error. |
| 52 | + 'bazel mod deps --lockfile_mode=update', |
53 | 53 | ], |
54 | 54 | // This is theory should be `branch` but in some cases this is causing the command not to |
55 | 55 | // run when in the same branch there are mixtures of update types by different managers. |
56 | | - executionMode: "update", |
| 56 | + executionMode: 'update', |
57 | 57 | }, |
58 | | - matchManagers: ["bazel", "bazel-module", "bazelisk"], |
| 58 | + matchManagers: ['bazel', 'bazel-module', 'bazelisk'], |
59 | 59 | }, |
60 | 60 |
|
61 | 61 | // Rule to disable NPM updates on branches other than 'main'. |
62 | 62 | // But allow updating engines and packageManagers. |
63 | 63 | { |
64 | 64 | enabled: false, |
65 | | - matchBaseBranches: ["!main"], |
66 | | - matchDepNames: ["!node", "!pnpm", "!npm", "!yarn"], |
67 | | - matchManagers: ["npm"], |
| 65 | + matchBaseBranches: ['!main'], |
| 66 | + matchDepNames: ['!node', '!pnpm', '!npm', '!yarn'], |
| 67 | + matchManagers: ['npm'], |
68 | 68 | }, |
69 | 69 |
|
70 | 70 | // Group all non-major dependencies together for updates. |
71 | 71 | { |
72 | | - groupName: "all non-major dependencies", |
73 | | - matchDepNames: ["*", "!node", "!pnpm", "!npm", "!yarn"], |
74 | | - matchUpdateTypes: ["digest", "patch", "minor"], |
75 | | - matchManagers: ["npm"], |
| 72 | + groupName: 'all non-major dependencies', |
| 73 | + matchDepNames: ['*', '!node', '!pnpm', '!npm', '!yarn'], |
| 74 | + matchUpdateTypes: ['digest', 'patch', 'minor'], |
| 75 | + matchManagers: ['npm'], |
76 | 76 | }, |
77 | 77 |
|
78 | 78 | // ============================================================================ |
79 | 79 | // ECOSYSTEM-SPECIFIC GROUPING |
80 | 80 | // ============================================================================ |
81 | 81 | // Delay NPM updates to mitigate dependency chain attacks by malicious actors. |
82 | 82 | // This rule only affects direct dependencies. |
83 | | - // { |
84 | | - // minimumReleaseAge: '1 day', |
85 | | - // matchDatasources: ['npm'], |
86 | | - // }, |
| 83 | + { |
| 84 | + minimumReleaseAge: '1 day', |
| 85 | + matchManagers: ['npm'], |
| 86 | + }, |
87 | 87 |
|
88 | 88 | // Group Bazel updates |
89 | 89 | { |
90 | | - groupName: "bazel dependencies", |
91 | | - matchManagers: ["bazel", "bazel-module"], |
| 90 | + groupName: 'bazel dependencies', |
| 91 | + matchManagers: ['bazel', 'bazel-module'], |
92 | 92 | }, |
93 | 93 |
|
94 | 94 | // Group GitHub Actions workflow |
95 | 95 | { |
96 | | - groupName: "all github actions", |
97 | | - matchManagers: ["github-actions"], |
| 96 | + groupName: 'all github actions', |
| 97 | + matchManagers: ['github-actions'], |
98 | 98 | }, |
99 | 99 |
|
100 | 100 | // ============================================================================ |
|
104 | 104 | // Group updates related to Angular ecosystem across repositories |
105 | 105 | { |
106 | 106 | enabled: true, // Enable NPM updates of cross-repo dependencies on all branches. |
107 | | - groupName: "cross-repo angular dependencies", |
108 | | - followTag: "next", |
| 107 | + groupName: 'cross-repo angular dependencies', |
| 108 | + followTag: 'next', |
109 | 109 | minimumReleaseAge: null, |
110 | 110 | separateMajorMinor: false, |
111 | | - schedule: ["* 0-22/2 * * *"], // Every minute, every 2 hours |
| 111 | + schedule: ['* 0-22/2 * * *'], // Every minute, every 2 hours |
112 | 112 | matchPackageNames: [ |
113 | | - "@angular-devkit/**", |
114 | | - "@angular/**", |
115 | | - "@schematics/**", |
116 | | - "angular/**", |
117 | | - "ng-packagr", |
| 113 | + '@angular-devkit/**', |
| 114 | + '@angular/**', |
| 115 | + '@schematics/**', |
| 116 | + 'angular/**', |
| 117 | + 'ng-packagr', |
118 | 118 | ], |
119 | 119 | }, |
120 | 120 |
|
121 | 121 | // @angular/benchpress is not released as 'next' |
122 | 122 | { |
123 | 123 | followTag: null, |
124 | | - matchDepNames: ["@angular/benchpress"], |
| 124 | + matchDepNames: ['@angular/benchpress'], |
125 | 125 | }, |
126 | 126 |
|
127 | 127 | // Disable 'next' tag tracking on non-main branches |
128 | 128 | { |
129 | | - matchBaseBranches: ["!main"], |
| 129 | + matchBaseBranches: ['!main'], |
130 | 130 | followTag: null, |
131 | 131 | }, |
132 | 132 |
|
133 | 133 | // Keep minor and patch updates separate for TypeScript |
134 | 134 | { |
135 | | - matchDepNames: ["typescript"], |
| 135 | + matchDepNames: ['typescript'], |
136 | 136 | separateMinorPatch: true, |
137 | 137 | }, |
138 | 138 |
|
139 | 139 | // Group TypeScript-related packages |
140 | 140 | { |
141 | | - groupName: "typescript dependencies", |
142 | | - matchDepNames: ["typescript", "tslib"], |
| 141 | + groupName: 'typescript dependencies', |
| 142 | + matchDepNames: ['typescript', 'tslib'], |
143 | 143 | }, |
144 | 144 |
|
145 | 145 | // Limit how many times these packages get updated (They deploy each merged PR) |
146 | 146 | { |
147 | 147 | matchDepNames: [ |
148 | | - "github/codeql-action", |
149 | | - "google-closure-compiler", |
150 | | - "quicktype-core", |
151 | | - "renovate", |
| 148 | + 'github/codeql-action', |
| 149 | + 'google-closure-compiler', |
| 150 | + 'quicktype-core', |
| 151 | + 'renovate', |
152 | 152 | ], |
153 | | - schedule: ["on sunday and wednesday"], |
| 153 | + schedule: ['on sunday and wednesday'], |
154 | 154 | }, |
155 | 155 |
|
156 | 156 | // ============================================================================ |
|
160 | 160 | // Disable updates for placeholder or 0.0.0-style versions |
161 | 161 | { |
162 | 162 | enabled: false, |
163 | | - matchCurrentVersion: "/^[~^]?0\\.0\\.0-/", |
| 163 | + matchCurrentVersion: '/^[~^]?0\\.0\\.0-/', |
164 | 164 | }, |
165 | 165 |
|
166 | 166 | // Disable major updates for specified dependencies |
167 | 167 | { |
168 | 168 | enabled: false, |
169 | 169 | matchDepNames: [ |
170 | | - "@types/node", |
171 | | - "node", |
172 | | - "bazel", // bazelisk bazel version |
173 | | - "npm", |
174 | | - "rxjs", |
175 | | - "tslib", |
176 | | - "yarn", |
| 170 | + '@types/node', |
| 171 | + 'node', |
| 172 | + 'bazel', // bazelisk bazel version |
| 173 | + 'npm', |
| 174 | + 'rxjs', |
| 175 | + 'tslib', |
| 176 | + 'yarn', |
177 | 177 | ], |
178 | | - matchUpdateTypes: ["major"], |
| 178 | + matchUpdateTypes: ['major'], |
179 | 179 | }, |
180 | 180 |
|
181 | 181 | // Disable TypeScript major and minor updates |
182 | 182 | { |
183 | 183 | enabled: false, |
184 | | - matchDepNames: ["typescript"], |
185 | | - matchUpdateTypes: ["major", "minor"], |
| 184 | + matchDepNames: ['typescript'], |
| 185 | + matchUpdateTypes: ['major', 'minor'], |
186 | 186 | }, |
187 | 187 |
|
188 | 188 | // Rule to disable major updates on branches other than 'main'. |
189 | 189 | { |
190 | 190 | enabled: false, |
191 | | - matchBaseBranches: ["!main"], |
192 | | - matchUpdateTypes: ["major"], |
| 191 | + matchBaseBranches: ['!main'], |
| 192 | + matchUpdateTypes: ['major'], |
| 193 | + }, |
| 194 | + |
| 195 | + // TODO(alanagius): delete the below rule once RC branch is `21.0.x` |
| 196 | + // Temporary disable updates of `rules_angular` on non main branches due to the APF breaking change |
| 197 | + // See: https://github.com/devversion/rules_angular/pull/63 |
| 198 | + { |
| 199 | + enabled: false, |
| 200 | + matchBaseBranches: ['!main'], |
| 201 | + matchDepNames: ['rules_angular'], |
193 | 202 | }, |
194 | 203 | ], |
195 | 204 | } |
0 commit comments