forked from promptfoo/promptfoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrenovate.json
More file actions
378 lines (377 loc) · 13.1 KB
/
Copy pathrenovate.json
File metadata and controls
378 lines (377 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>promptfoo/renovate-config"],
"rebaseWhen": "behind-base-branch",
"separateMajorMinor": true,
"rangeStrategy": "auto",
"postUpdateOptions": [],
"constraints": {
"npm": ">= 11"
},
"lockFileMaintenance": {
"enabled": true,
"schedule": [
"before 3am on the first day of the month",
"before 3am on the 15th day of the month"
]
},
"ignorePaths": [
"examples/**/requirements.txt",
"examples/**/pyproject.toml",
"examples/**/go.mod",
"test/**/go.mod"
],
"packageRules": [
{
"description": "Disable major Node.js version updates",
"matchPackageNames": ["node"],
"matchUpdateTypes": ["major"],
"enabled": false
},
{
"description": "Pin the code-scan workflow's Node to 24.15.0: Node >=24.16.0 has a Linux HTTPS slowdown (~10s/request) that drags the scanner's `npm install -g promptfoo` past the job's 15-minute timeout (see the comment in .github/workflows/promptfoo-code-scan.yml; first fixed in PR #9374, regressed by the blanket bump in PR #9859). Renovate must not re-bump this pin. Re-enable when a newer Node resolves the regression.",
"matchManagers": ["github-actions"],
"matchFileNames": [".github/workflows/promptfoo-code-scan.yml"],
"matchPackageNames": ["node"],
"enabled": false
},
{
"description": "Group example directory updates as a fallback so package-specific groups still win",
"matchFileNames": ["examples/**/package.json"],
"groupName": "Example dependencies",
"schedule": ["before 6am on the first day of the month"]
},
{
"description": "Group @inquirer packages together",
"matchPackagePatterns": ["^@inquirer/"],
"groupName": "@inquirer packages"
},
{
"description": "Disable Chevrotain major updates while Node 20 is supported",
"matchPackageNames": ["chevrotain", "/^@chevrotain\\//"],
"matchUpdateTypes": ["major"],
"enabled": false
},
{
"description": "Hold tsdown on 0.21.x while Node 20 is supported: tsdown 0.22+ sets engines node ^22.18.0 || >=24.0.0 (drops Node 20.19/20.20), but the repo still builds/tests on Node 20.20 with engine-strict, so 0.22+ aborts npm ci. Revisit when the Node 20 floor is dropped.",
"matchPackageNames": ["tsdown"],
"allowedVersions": "<0.22.0"
},
{
"description": "Group Anthropic packages together across all dependency types",
"matchPackagePatterns": ["^@anthropic-ai/"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "Anthropic packages"
},
{
"description": "Group AWS SDK packages together across all dependency types",
"matchPackagePatterns": ["^@aws-sdk/", "^@smithy/"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "AWS SDK packages"
},
{
"description": "Group Azure packages together across all dependency types",
"matchPackagePatterns": ["^@azure/"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "Azure packages"
},
{
"description": "Group Storybook monorepo packages together",
"matchPackagePatterns": ["^@storybook/", "^storybook$", "^@chromatic-com/storybook"],
"groupName": "Storybook monorepo"
},
{
"description": "Group Docusaurus packages together",
"matchPackagePatterns": ["^@docusaurus/"],
"groupName": "Docusaurus packages"
},
{
"description": "Group GitHub Actions packages together",
"matchPackagePatterns": ["^@actions/"],
"groupName": "GitHub Actions"
},
{
"description": "Use major.minor only for Ruby versions to auto-receive patches",
"matchManagers": ["github-actions"],
"matchPackageNames": ["ruby"],
"extractVersion": "^(?<version>\\d+\\.\\d+)",
"versioning": "ruby"
},
{
"description": "Group IBM packages together across all dependency types",
"matchPackagePatterns": ["^@ibm-cloud/", "^@ibm-generative-ai/", "^ibm-cloud-sdk-core$"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "IBM packages"
},
{
"description": "Group MUI packages together",
"matchPackagePatterns": ["^@mui/", "^@emotion/"],
"groupName": "MUI packages"
},
{
"description": "Group Octokit packages together",
"matchPackagePatterns": ["^@octokit/"],
"groupName": "Octokit"
},
{
"description": "Group OpenAI packages together across all dependency types",
"matchPackagePatterns": ["^@openai/", "^openai$"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "OpenAI packages"
},
{
"description": "Group fal.ai packages together across all dependency types",
"matchPackagePatterns": ["^@fal-ai/"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "fal.ai packages"
},
{
"description": "Group langfuse packages together across all dependency types",
"matchPackagePatterns": ["^langfuse$"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "langfuse"
},
{
"description": "Group PostHog packages together across all dependency types",
"matchPackagePatterns": ["^posthog-"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "PostHog packages"
},
{
"description": "Group OpenTelemetry packages together",
"matchPackagePatterns": ["^@opentelemetry/"],
"groupName": "OpenTelemetry"
},
{
"description": "Group SWC packages together",
"matchPackagePatterns": ["^@swc/"],
"groupName": "SWC"
},
{
"description": "Group TanStack packages together",
"matchPackagePatterns": ["^@tanstack/"],
"groupName": "TanStack packages"
},
{
"description": "Group Testing Library packages together",
"matchPackagePatterns": ["^@testing-library/"],
"groupName": "Testing Library packages"
},
{
"description": "Group Vitest packages together",
"matchPackagePatterns": ["^vitest$", "^@vitest/"],
"groupName": "Vitest"
},
{
"description": "Keep Drizzle ORM packages in sync",
"matchPackageNames": ["drizzle-orm", "drizzle-kit"],
"groupName": "Drizzle ORM"
},
{
"description": "Keep Playwright packages in sync across all dependency types",
"matchPackagePatterns": ["^@playwright/", "^playwright$", "^playwright-"],
"matchDepTypes": [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
],
"groupName": "Playwright"
},
{
"description": "Keep React packages in sync",
"matchPackageNames": ["react", "react-dom", "@types/react", "@types/react-dom"],
"groupName": "React"
},
{
"description": "Keep socket.io packages in sync",
"matchPackageNames": ["socket.io", "socket.io-client"],
"groupName": "socket.io"
},
{
"description": "Keep jsdom in sync across all workspaces",
"matchPackageNames": ["jsdom"],
"groupName": "jsdom"
},
{
"description": "Keep undici in sync across root and code-scan-action",
"matchPackageNames": ["undici"],
"groupName": "undici"
},
{
"description": "Keep dedent in sync across all workspaces",
"matchPackageNames": ["dedent"],
"groupName": "dedent"
},
{
"description": "Group all @types packages together",
"matchPackagePatterns": ["^@types/"],
"groupName": "Type definitions",
"schedule": ["before 6am on Monday"]
},
{
"description": "Keep ModelAudit schema generator pins current",
"matchManagers": ["pip_requirements"],
"matchFileNames": ["scripts/modelaudit_schema_requirements.txt"],
"groupName": "ModelAudit schema generator"
},
{
"description": "ModelAudit schema generator: only modelaudit (the top-level package) drives updates. Its transitive pins (pydantic, pydantic-core, and typing helpers) are a matched set that must move together — pydantic enforces an exact pydantic-core pair at import time, and pydantic-core releases ahead of pydantic stable — so an independent bump of any one creates an incompatible pair. They are refreshed by regenerating the schema when modelaudit bumps.",
"matchManagers": ["pip_requirements"],
"matchFileNames": ["scripts/modelaudit_schema_requirements.txt"],
"matchPackageNames": [
"pydantic",
"pydantic-core",
"annotated-types",
"typing-extensions",
"typing-inspection"
],
"enabled": false
},
{
"description": "LLM provider packages: frequent updates with a ten-day stabilization window",
"matchPackagePatterns": [
"^@anthropic-ai/",
"^@aws-sdk/client-bedrock",
"^@aws-sdk/client-sagemaker",
"^@azure/ai-",
"^@azure/openai",
"^@fal-ai/",
"^@ibm-cloud/watsonx",
"^@ibm-generative-ai/",
"^@modelcontextprotocol/",
"^@openai/",
"^google-auth-library$",
"^langfuse$",
"^openai$"
],
"schedule": ["every weekday"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "All npm packages: wait 10 days, a buffer above the 7-day Socket minimum release age floor",
"matchDatasources": ["npm"],
"minimumReleaseAge": "10 days"
},
{
"description": "@opencode-ai/sdk: weekly updates to reduce noise from daily releases",
"matchPackageNames": ["@opencode-ai/sdk"],
"schedule": ["before 6am on Monday"],
"minimumReleaseAge": "10 days"
},
{
"description": "AWS SDK packages: weekly updates to reduce noise",
"matchPackagePatterns": ["^@aws-sdk/", "^@smithy/"],
"schedule": ["before 6am on Monday"],
"minimumReleaseAge": "10 days"
},
{
"description": "Biome: weekly updates",
"matchPackageNames": ["@biomejs/biome"],
"schedule": ["before 6am on Monday"],
"minimumReleaseAge": "10 days"
},
{
"description": "Dev tooling: weekly updates (low urgency)",
"matchPackageNames": ["hono", "knip"],
"schedule": ["before 6am on Monday"],
"minimumReleaseAge": "10 days"
},
{
"description": "framer-motion: monthly updates (animation library, low urgency)",
"matchPackageNames": ["framer-motion"],
"schedule": ["before 6am on the first day of the month"],
"minimumReleaseAge": "10 days"
},
{
"description": "satori: monthly updates to reduce noise from frequent patch releases",
"matchPackageNames": ["satori"],
"schedule": ["before 6am on the first day of the month"],
"minimumReleaseAge": "10 days"
},
{
"description": "Vercel AI SDK: monthly updates to reduce noise from frequent patch releases",
"matchPackageNames": ["ai"],
"groupName": "Vercel AI SDK",
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "Storybook: monthly updates to reduce noise from frequent patch releases",
"matchPackagePatterns": ["^@storybook/", "^storybook$", "^@chromatic-com/storybook"],
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "PostHog packages: monthly updates to reduce noise from frequent patch releases",
"matchPackagePatterns": ["^posthog-"],
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "undici: monthly updates to reduce noise",
"matchPackageNames": ["undici"],
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "postcss: monthly updates to reduce noise from frequent patch releases",
"matchPackageNames": ["postcss"],
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
},
{
"description": "fast-xml-parser: monthly updates to reduce noise from frequent patch releases",
"matchPackageNames": ["fast-xml-parser"],
"schedule": ["before 6am on the first day of the month"],
"rangeStrategy": "bump",
"minimumReleaseAge": "10 days"
}
]
}