Repository navigation
Expand file tree
/
Copy pathqueue.json
More file actions
464 lines (464 loc) · 25.2 KB
/
Copy pathqueue.json
File metadata and controls
464 lines (464 loc) · 25.2 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
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
{
"$comment": "Generated by `pnpm packs:queue`: ranked by how many sample repositories (fixtures/corpus.json and scripts/packs-queue-sample.ts, pinned public applications) declare the package directly, weekly downloads breaking ties; packages that upgrade together are one entry named after their hub. Pick one, say so in a pack-request issue, and follow CONTRIBUTING.md, \"Write a pack\".",
"generated": "2026-10-07",
"sample": 52,
"queue": [
{
"package": "react",
"members": ["react", "@types/react", "@types/react-dom", "react-dom", "react-is"],
"from": ">=18 <19",
"to": ">=19 <20",
"why": "declared directly in 48 of 52 sample repositories, 17 of them on an older major; 1645 breaking API changes, 739 distinct (701 removed or renamed, 38 change shapes) from 18.3.1 to 19.3.0 (@types/react 18.3.31 → 19.3.0); upgraded with @types/react, @types/react-dom, react-dom, react-is (released in lockstep, types for react)",
"status": "verified",
"repos": 48,
"reposBehind": 17,
"weeklyDownloads": 0,
"codemod": "https://react.dev/blog/2024/04/25/react-19-upgrade-guide (`react/19/migration-recipe` and `types-react-codemod preset-19` cover render, string refs, act and removed types; the guide lists the rest as manual)",
"breaking": {
"total": 1645,
"distinct": 739,
"guide": 18
}
},
{
"package": "vitest",
"members": [
"vitest",
"@vitest/browser-playwright",
"@vitest/coverage-istanbul",
"@vitest/coverage-v8",
"@vitest/ui"
],
"from": ">=4 <5",
"to": ">=5 <6",
"why": "declared directly in 39 of 52 sample repositories, 31 of them on an older major; 332 breaking API changes, 276 distinct (224 removed or renamed, 52 change shapes) from 4.1.11 to 5.0.3; upgraded with @vitest/browser-playwright, @vitest/coverage-istanbul, @vitest/coverage-v8, @vitest/ui (released in lockstep, shared @vitest/mocker)",
"status": "verified",
"repos": 39,
"reposBehind": 31,
"weeklyDownloads": 0,
"breaking": {
"total": 332,
"distinct": 276,
"guide": 34
}
},
{
"package": "date-fns",
"members": ["date-fns"],
"from": ">=3 <4",
"to": ">=4 <5",
"why": "declared directly in 39 of 52 sample repositories, 17 of them on an older major; 143 breaking API changes, 123 distinct (5 removed or renamed, 118 change shapes) from 3.6.0 to 4.4.0; counts only the main entry: the diff does not match v4's subpath modules (date-fns/add) yet",
"status": "blocked",
"blockedReason": "The v4.0.0 changelog lists only type-level breaking changes (internal types, ESM-first) and no API removals; no public repository was found whose v3 to v4 upgrade needed a source change. Checked 2026-10-11: dust-tt/dust#33915 (no code changes), WordPress/gutenberg#78057 (only a timezone-mock test setup change), Kong/kongponents#3447 (date-fns 2 to 4 plus date-fns-tz removal, not v3). Retry when a public repository with a compiler-visible v3 to v4 migration shows up.",
"repos": 39,
"reposBehind": 17,
"weeklyDownloads": 0,
"breaking": {
"total": 143,
"distinct": 123
}
},
{
"package": "vite",
"members": ["vite", "@vitejs/plugin-react", "vite-plugin-inspect"],
"from": ">=7 <8",
"to": ">=8 <9",
"why": "declared directly in 35 of 52 sample repositories, 18 of them on an older major; 49 breaking API changes, 40 distinct (6 removed or renamed, 34 change shapes) from 7.3.7 to 8.3.3; upgraded with @vitejs/plugin-react, vite-plugin-inspect (plugin of vite)",
"status": "blocked",
"blockedReason": "Real public Vite 7 to 8 migrations exist but none can be scored with the current engine. Checked 2026-10-12: outline/outline (upgrade da68359; the pinned parent 9e87fcf declares vite as npm:rolldown-vite@7.3.1, an alias, so `check vite` answers 'not a dependency' and packs:truth cannot link the target under that name), lobehub/lobe-chat (upgrade 31d76cc; no lockfile Uptide supports at the pinned parent 9a03c18, so the ground-truth install fails with UNSUPPORTED_PACKAGE_MANAGER), microsoft/teams.ts (#874 upgrades vite 6 to 8, outside the >=7 <8 range). Other Vite 8 upgrades found (photonia-io/photonia#1135, climateinteractive/SDEverywhere#919) are small, not popular repositories. Retry when the engine resolves npm: aliases of a package and installs repositories without a supported lockfile, or when a popular public repository with a plain vite 7.x to 8 upgrade and a supported lockfile shows up.",
"repos": 35,
"reposBehind": 18,
"weeklyDownloads": 0,
"breaking": {
"total": 49,
"distinct": 40,
"guide": 14
}
},
{
"package": "recharts",
"members": ["recharts"],
"from": ">=2 <3",
"to": ">=3 <4",
"why": "declared directly in 20 of 52 sample repositories, 14 of them on an older major; 688 breaking API changes, 659 distinct (590 removed or renamed, 69 change shapes) from 2.15.4 to 3.10.1",
"status": "todo",
"repos": 20,
"reposBehind": 14,
"weeklyDownloads": 0,
"breaking": {
"total": 688,
"distinct": 659,
"guide": 4
}
},
{
"package": "ioredis",
"members": ["ioredis"],
"from": ">=5 <6",
"to": ">=6 <7",
"why": "declared directly in 24 of 52 sample repositories, 22 of them on an older major; 976 breaking API changes, 191 distinct (1 removed or renamed, 190 change shapes) from 5.11.1 to 6.0.0",
"status": "blocked",
"blockedReason": "A candidate pack is in the tree (packages/core/src/packs/ioredis, RESEARCH.md), scored against five public merged upgrades: ferni-ai/voiceai (c6838d5), syzygyhack/open-foundry (a466e0d), simondietschi/dokunc (#15, c475390), safe-global/safe-client-gateway (#3409, 80135d2), kazumadev619-dev/FishingConditionsApp (#235, cdecc03). It has no breaking false positive, but cannot reach verified: ioredis 6 keeps v5 reply shapes and types for default clients and removes no command, so none of the five upgrades has a compiler diagnostic or another breaking site to predict; their source changes are connection-default decisions (protocol: 2, the v5 retryStrategy, the HELLO 3 AUTH redaction test), which are behavior notes. The one breaking compile error found (bullmq 5 bundling its own ioredis 5, elie222/inbox-zero) disappears in a real install because that workspace forces one ioredis copy, and its upgrade also moved bullmq 5 to 6, a separate major. Checked 2026-10-14. Retry when a public upgrade has a breaking ioredis 6 site (a bundled-copy type error fixed in the commit, a subscriber mode check, a connect listener with enableOfflineQueue: false), or when the gate can count behavior-note findings.",
"repos": 24,
"reposBehind": 22,
"weeklyDownloads": 0,
"breaking": {
"total": 976,
"distinct": 191
}
},
{
"package": "lucide-react",
"members": ["lucide-react"],
"from": ">=0 <1",
"to": ">=1 <2",
"why": "declared directly in 27 of 52 sample repositories, 21 of them on an older major; 7587 breaking API changes, 102 distinct (92 removed or renamed, 10 change shapes) from 0.577.0 to 1.52.0",
"status": "verified",
"repos": 27,
"reposBehind": 21,
"weeklyDownloads": 0,
"breaking": {
"total": 7587,
"distinct": 102
}
},
{
"package": "@sentry/core",
"members": [
"@sentry/core",
"@sentry/browser",
"@sentry/nestjs",
"@sentry/nextjs",
"@sentry/node",
"@sentry/profiling-node",
"@sentry/react"
],
"from": ">=10 <11",
"to": ">=11 <12",
"why": "declared directly in 22 of 52 sample repositories, 21 of them on an older major; 295 breaking API changes, 289 distinct (266 removed or renamed, 23 change shapes) from 10.76.1 to 11.5.0; upgraded with @sentry/browser, @sentry/nestjs, @sentry/nextjs, @sentry/node, @sentry/profiling-node, @sentry/react (@sentry released in lockstep, @sentry/nextjs re-exports @sentry/core, @sentry/react re-exports @sentry/core, @sentry/node re-exports @sentry/core, @sentry/nestjs re-exports @sentry/core, @sentry/profiling-node re-exports @sentry/core, @sentry/browser re-exports @sentry/core)",
"status": "in-progress",
"note": "Packs are keyed on the SDK a repository declares, built from packages/core/src/packs/sentry (RESEARCH.md). Verified: @sentry/nextjs (3 public repositories), @sentry/browser (2) and @sentry/react (2). @sentry/node has reviewed ground truth (pack sentry-node, not registered) and is held back by TS7006 errors inside an option the target removed, which are not folded into that option's site. Checked 2026-10-14.",
"repos": 22,
"reposBehind": 21,
"weeklyDownloads": 0,
"breaking": {
"total": 295,
"distinct": 289,
"guide": 98
}
},
{
"package": "@prisma/client",
"members": ["@prisma/client", "@prisma/adapter-pg", "@prisma/instrumentation"],
"from": ">=6 <7",
"to": ">=7 <8",
"why": "declared directly in 14 of 52 sample repositories, 8 of them on an older major; 5261 breaking API changes, 4403 distinct (4403 removed or renamed, 0 change shapes) from 6.19.3 to 7.10.0; upgraded with @prisma/adapter-pg, @prisma/instrumentation (@prisma released in lockstep)",
"status": "todo",
"repos": 14,
"reposBehind": 8,
"weeklyDownloads": 0,
"breaking": {
"total": 5261,
"distinct": 4403,
"guide": 16
}
},
{
"package": "@typescript-eslint/utils",
"members": [
"@typescript-eslint/utils",
"@typescript-eslint/eslint-plugin",
"@typescript-eslint/parser"
],
"from": ">=6 <7",
"to": ">=8 <9",
"why": "declared directly in 20 of 52 sample repositories, 8 of them on an older major; 468 breaking API changes, 237 distinct (146 removed or renamed, 91 change shapes) from 6.21.0 to 8.71.1; upgraded with @typescript-eslint/eslint-plugin, @typescript-eslint/parser (@typescript-eslint released in lockstep, @typescript-eslint/eslint-plugin re-exports @typescript-eslint/utils)",
"status": "todo",
"repos": 20,
"reposBehind": 8,
"weeklyDownloads": 0,
"breaking": {
"total": 468,
"distinct": 237,
"guide": 7
}
},
{
"package": "tailwindcss",
"members": ["tailwindcss"],
"from": ">=3 <4",
"to": ">=4 <5",
"why": "declared directly in 35 of 52 sample repositories, 18 of them on an older major; 8 breaking API changes from 3.4.19 to 4.3.3; type diff understates: the migration guide lists 31 (https://tailwindcss.com/docs/upgrade-guide), scored as 31: Removed @tailwind directives; Removed deprecated utilities; Updated shadow, radius, and blur scales; Renamed outline utility; Default ring width change; Space-between selector; Divide selector; Using variants with gradients; Container configuration; Default border color; Default ring width and color; New default placeholder color; Buttons use the default cursor; Dialog margins removed; Hidden attribute takes priority; Using a prefix; The important modifier; Adding custom utilities; Variant stacking order; Variables in arbitrary values; Arbitrary values in grid and object-position utilities; Hover styles on mobile; Transitioning outline-color; Resetting Transforms; Transitions; Disabling core plugins; Using the theme() function; Using a JavaScript config file; Theme values in JavaScript; Using @apply with Vue, Svelte, or CSS modules; Using Sass, Less, and Stylus",
"status": "todo",
"repos": 35,
"reposBehind": 18,
"weeklyDownloads": 0,
"codemod": "https://tailwindcss.com/docs/upgrade-guide (`@tailwindcss/upgrade` converts config to CSS and renames utilities; custom plugins and changed defaults are manual)",
"breaking": {
"total": 8,
"distinct": 8,
"guide": 31
}
},
{
"package": "react-day-picker",
"members": ["react-day-picker"],
"from": ">=9 <10",
"to": ">=10 <11",
"why": "declared directly in 22 of 52 sample repositories, 21 of them on an older major; 134 breaking API changes, 133 distinct (126 removed or renamed, 7 change shapes) from 9.14.0 to 10.0.2",
"status": "todo",
"repos": 22,
"reposBehind": 21,
"weeklyDownloads": 0,
"breaking": {
"total": 134,
"distinct": 133,
"guide": 9
}
},
{
"package": "openai",
"members": ["openai"],
"from": ">=4 <5",
"to": ">=7 <8",
"why": "declared directly in 16 of 52 sample repositories, 16 of them on an older major; 1299 breaking API changes, 825 distinct (801 removed or renamed, 24 change shapes) from 4.104.0 to 7.30.0",
"status": "candidate",
"repos": 16,
"reposBehind": 16,
"weeklyDownloads": 0,
"breaking": {
"total": 1299,
"distinct": 825,
"guide": 18
}
},
{
"package": "next",
"members": [
"next",
"@next/bundle-analyzer",
"@next/mdx",
"@next/third-parties",
"eslint-config-next"
],
"from": ">=15 <16",
"to": ">=16 <17",
"why": "declared directly in 27 of 52 sample repositories, 10 of them on an older major; 75 breaking API changes, 74 distinct (59 removed or renamed, 15 change shapes) from 15.5.27 to 16.4.0; upgraded with @next/bundle-analyzer, @next/mdx, @next/third-parties, eslint-config-next (released in lockstep)",
"status": "in-progress",
"repos": 27,
"reposBehind": 10,
"weeklyDownloads": 0,
"codemod": "https://nextjs.org/docs/app/guides/upgrading/version-16 (`@next/codemod upgrade` moves config, middleware to proxy and stabilized APIs; async request APIs and caching changes are reviewed by hand)",
"breaking": {
"total": 75,
"distinct": 74,
"guide": 15
}
},
{
"package": "react-router",
"members": ["react-router", "@types/react-router-dom", "react-router-dom"],
"from": ">=6 <7",
"to": ">=7 <8",
"why": "declared directly in 23 of 52 sample repositories, 21 of them on an older major; 103 breaking API changes, 83 distinct (51 removed or renamed, 32 change shapes) from 6.30.6 to 8.4.0; upgraded with @types/react-router-dom, react-router-dom (react-router-dom re-exports react-router, needs react moved); split 2026-10-14: React Router documents 6 to 8 as two upgrades (the v6 guide exists only in the v7 docs, each guide assumes the previous major's future flags were adopted on that major, and react-router-dom has no 8.x), so this entry is the 6 to 7 pack and 7 to 8 is the next entry; the counts above measure 6.30.6 to 8.4.0",
"status": "verified",
"repos": 23,
"reposBehind": 21,
"weeklyDownloads": 0,
"breaking": {
"total": 103,
"distinct": 83,
"guide": 9
}
},
{
"package": "react-router",
"members": ["react-router"],
"from": ">=7 <8",
"to": ">=8 <9",
"why": "split from the 6 to 8 entry above: the second upgrade, from the latest 7.x with the v8 future flags adopted on 7 (https://github.com/remix-run/react-router/blob/7ccdcecdd944e15be0cd0dcb702b86c9af1214a8/docs/upgrading/v7.md): react-router-dom removed, React 19.2.7 and Node 22.22 minimums, ESM only, middleware always on (context typed Readonly<RouterContextProvider>), UIMatch.data removed for loaderData, hasErrorBoundary removed, stale future keys rejected from 8.4; not measured separately",
"status": "todo",
"repos": 23,
"reposBehind": 21,
"weeklyDownloads": 0
},
{
"package": "prettier",
"members": ["prettier", "eslint-plugin-prettier", "prettier-plugin-svelte"],
"from": ">=2 <3",
"to": ">=3 <4",
"why": "declared directly in 31 of 52 sample repositories, 6 of them on an older major; API change not measured (no type declarations); the migration guide lists 18 (https://prettier.io/blog/2023/07/05/3.0.0.html): Change the default value for `trailingComma` to `all`; Remove Flow syntax support from `babel` parser; Remove support for Flow comments; Print trailing comma in type parameters and tuple types when `--trailing-comma=es5`; Add the pure `css` parser; Drop support for \"comma separated interfaces\" syntax; Change public APIs to asynchronous; Npm package file structures changed; Support plugins in ESM; Update `prettier.doc`; `textToDoc` trims trailing hard lines; Removed support for custom parser api; The second argument `parsers` passed to `parsers.parse` has been removed; `undefined` and `null` are not passed to plugin's `print` function; Allow using arbitrary truthy values for `label` docs; `getFileInfo()` resolves config by default; Plugin search feature has been removed; Ignore `.gitignore`d files by default; scored as 18; upgraded with eslint-plugin-prettier, prettier-plugin-svelte (plugin of prettier)",
"status": "todo",
"repos": 31,
"reposBehind": 6,
"weeklyDownloads": 0
},
{
"package": "jose",
"members": ["jose"],
"from": ">=5 <6",
"to": ">=6 <7",
"why": "declared directly in 20 of 52 sample repositories, 4 of them on an older major; 178 breaking API changes, 94 distinct (15 removed or renamed, 79 change shapes) from 5.10.0 to 6.2.12",
"status": "todo",
"repos": 20,
"reposBehind": 4,
"weeklyDownloads": 0,
"breaking": {
"total": 178,
"distinct": 94
}
},
{
"package": "eslint",
"members": [
"eslint",
"@stylistic/eslint-plugin",
"eslint-plugin-compat",
"eslint-plugin-cypress",
"eslint-plugin-regexp",
"eslint-plugin-tailwindcss",
"eslint-plugin-unicorn",
"eslint-webpack-plugin"
],
"from": ">=8 <9",
"to": ">=10 <11",
"why": "declared directly in 32 of 52 sample repositories, 27 of them on an older major; API change not measured (no type declarations); the migration guide lists 21 (https://eslint.org/docs/latest/use/migrate-to-10.0.0): `eslint:recommended` has been updated; New configuration file lookup algorithm; Old config format no longer supported; JSX references are now tracked; `eslint-env` comments are reported as errors; Jiti < v2.2.0 are no longer supported; POSIX character classes in glob patterns; `stylish` formatter now uses native `styleText` instead of `chalk`; Deprecated options of the `radix` rule; `no-shadow-restricted-names` now reports `globalThis` by default; `func-names` schema is stricter; `allowConstructorFlags` option of `no-invalid-regexp` now accepts only unique items; `name` property added to ESLint core configs; Removal of `type` property in errors of invalid `RuleTester` cases; `Program` AST node range spans entire source text; Fixer methods now require string `text` arguments; New requirements for `ScopeManager` implementations; Removal of deprecated `context` members; Removal of deprecated `SourceCode` methods; Prohibiting `errors` or `output` of valid RuleTester test cases; Removal of `nodeType` property in `LintMessage` objects; scored as 21; upgraded with @stylistic/eslint-plugin, eslint-plugin-compat, eslint-plugin-cypress, eslint-plugin-regexp, eslint-plugin-tailwindcss, eslint-plugin-unicorn, eslint-webpack-plugin (plugin of eslint)",
"status": "todo",
"repos": 32,
"reposBehind": 27,
"weeklyDownloads": 0,
"codemod": "https://eslint.org/docs/latest/use/migrate-to-10.0.0 (`@eslint/migrate-config` converts .eslintrc to a flat config; removed APIs, rules and plugin compatibility are manual)"
},
{
"package": "@opentelemetry/core",
"members": [
"@opentelemetry/core",
"@opentelemetry/context-async-hooks",
"@opentelemetry/resources",
"@opentelemetry/sdk-metrics",
"@opentelemetry/sdk-trace-base",
"@opentelemetry/sdk-trace-node"
],
"from": ">=1 <2",
"to": ">=2 <3",
"why": "declared directly in 20 of 52 sample repositories, 3 of them on an older major; 65 breaking API changes from 1.30.1 to 2.12.0; upgraded with @opentelemetry/context-async-hooks, @opentelemetry/resources, @opentelemetry/sdk-metrics, @opentelemetry/sdk-trace-base, @opentelemetry/sdk-trace-node (@opentelemetry released in lockstep, @opentelemetry/sdk-trace-base re-exports @opentelemetry/core, @opentelemetry/resources re-exports @opentelemetry/core, @opentelemetry/sdk-trace-node re-exports @opentelemetry/core, @opentelemetry/sdk-metrics re-exports @opentelemetry/core)",
"status": "todo",
"repos": 20,
"reposBehind": 3,
"weeklyDownloads": 0,
"breaking": {
"total": 65,
"distinct": 65,
"guide": 9
}
},
{
"package": "@faker-js/faker",
"members": ["@faker-js/faker"],
"from": ">=8 <9",
"to": ">=10 <11",
"why": "declared directly in 17 of 52 sample repositories, 8 of them on an older major; 236 breaking API changes, 124 distinct (100 removed or renamed, 24 change shapes) from 8.4.1 to 10.6.0",
"status": "todo",
"repos": 17,
"reposBehind": 8,
"weeklyDownloads": 0,
"breaking": {
"total": 236,
"distinct": 124,
"guide": 2
}
},
{
"package": "undici",
"members": ["undici"],
"from": ">=7 <8",
"to": ">=8 <9",
"why": "declared directly in 16 of 52 sample repositories, 13 of them on an older major; 170 breaking API changes, 159 distinct (153 removed or renamed, 6 change shapes) from 7.30.0 to 8.11.2",
"status": "todo",
"repos": 16,
"reposBehind": 13,
"weeklyDownloads": 0,
"breaking": {
"total": 170,
"distinct": 159
}
},
{
"package": "googleapis",
"members": ["googleapis"],
"from": ">=171 <172",
"to": ">=184 <185",
"why": "declared directly in 8 of 52 sample repositories, 8 of them on an older major; 13792 breaking API changes from 171.4.0 to 184.0.0",
"status": "todo",
"repos": 8,
"reposBehind": 8,
"weeklyDownloads": 0,
"breaking": {
"total": 13792,
"distinct": 13792
}
},
{
"package": "marked",
"members": ["marked", "@types/marked"],
"from": ">=15 <16",
"to": ">=18 <19",
"why": "declared directly in 18 of 52 sample repositories, 16 of them on an older major; 58 breaking API changes, 51 distinct (0 removed or renamed, 51 change shapes) from 15.0.12 to 18.1.0; upgraded with @types/marked (types for marked)",
"status": "todo",
"repos": 18,
"reposBehind": 16,
"weeklyDownloads": 0,
"breaking": {
"total": 58,
"distinct": 51
}
},
{
"package": "bullmq",
"members": ["bullmq"],
"from": ">=5 <6",
"to": ">=6 <7",
"why": "declared directly in 12 of 52 sample repositories, 10 of them on an older major; 290 breaking API changes, 279 distinct (225 removed or renamed, 54 change shapes) from 5.81.5 to 6.3.11",
"status": "todo",
"repos": 12,
"reposBehind": 10,
"weeklyDownloads": 0,
"breaking": {
"total": 290,
"distinct": 279
}
},
{
"package": "posthog-node",
"members": ["posthog-node"],
"from": ">=4 <5",
"to": ">=5 <6",
"why": "declared directly in 16 of 52 sample repositories, 4 of them on an older major; 65 breaking API changes from 4.18.0 to 5.55.0",
"status": "todo",
"repos": 16,
"reposBehind": 4,
"weeklyDownloads": 0,
"breaking": {
"total": 65,
"distinct": 65
}
},
{
"package": "typescript",
"members": ["typescript"],
"from": ">=5 <6",
"to": ">=6 <7",
"why": "requested in UPT-56: declared in every repository of the 2026-10-14 OSS sample scan, most on 5.x; the compiler itself, so no type diff measures it: the 6.0 release notes (https://www.typescriptlang.org/docs/handbook/release-notes/typescript-6-0.html) deprecate baseUrl, moduleResolution node and classic, target ES5, module amd/umd/system/none, outFile, downlevelIteration, esModuleInterop and alwaysStrict false, module-keyword namespaces and import assertions, and change the strict, types, rootDir, module, target and noUncheckedSideEffectImports defaults; not measured",
"status": "candidate"
},
{
"package": "typescript",
"members": ["typescript"],
"from": ">=6 <7",
"to": ">=7 <8",
"why": "split 2026-10-14 from the 5 to 6 entry above: 6.0 deprecates what 7.0 removes (Announcing TypeScript 7.0, 2026-07-08, https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/), so a 5.x repository goes through 6 first; 7.0 also makes stableTypeOrdering permanent, changes template literal inference on Unicode code points and drops JSDoc Closure-style function types; not measured",
"status": "blocked",
"blockedReason": "TypeScript 7.0 ships no JavaScript compiler API (typescript@7.0.2 exports only lib/version.cjs; the announcement says a new API comes with 7.1), so `check` cannot compute the target's diagnostics: compileCompilerUpgrade reports the compile as not done and only tsconfig findings would remain. Retry when typescript 7.x exposes a programmatic API check can load, or when check can run the target's tsc binary on the repository without executing repository code."
}
]
}