Skip to content

Commit 97be89b

Browse files
chore(ci): refresh the Test Core shard-timings dataset (#25409)
Refreshes `scripts/test-shard-timings.json`, the balancing input for the Test Core shard split. Opened automatically by `.github/workflows/shard-timings-refresh.yml`. Every byte came out of `scripts/measure-test-shard-timings.mjs`; nothing here was hand-edited, and no bound, timeout or matrix entry was touched. ## Regression readings: NOT MEASURED -- the diff refused (exit 1) ``` file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:1271 throw new Error( ^ Error: packages/cli/src/commands/migrate/audit-mail-bodies.archive.integration.test.ts:2: the budget 85 s is not on the 10 s grid. A test file's budget is ONE header line, `// test-budget: SECONDS — CLASS: REASON` (ruling records 6181973363 and 6212133431): SECONDS is the measured CI reading x 1.25 rounded up to the next 10 s, above the 10 s line; CLASS is one of "spawns the real producer once per single-cause fixture", "whole-package import", "compiles the package type graph once"; REASON is not empty. Refusing to guess which budget the file is held to. at refuse (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:1271:11) at readTestBudget (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:1298:29) at declaredBudgetInTree (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:1323:10) at declaredBudget (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:3404:40) at windowFiles (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:1386:17) at diffMain (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:3400:21) at main (file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:3460:24) at file:///home/runner/work/objectstack/objectstack/scripts/measure-test-shard-timings.mjs:3644:3 at ModuleJob.run (node:internal/modules/esm/module_job:343:25) at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:681:26) Node.js v22.23.3 ``` ## What the seat landing this PR does File nothing from this refresh's readings: no rise and no file was judged. The refusal above is a defect in this lane, and that is the one card to file. ## Source Measured across 8 accumulated run(s) of the HOURLY `schedule` run of CI on `main` — the full-battery run (#16467). A `push` run on `main` is affected-only and is not a measurement of the workspace, so no push run feeds this file. No single green run measures the whole workspace either — turbo's cache is namespaced per shard and only main pushes write it, so a package whose inputs have not changed is a HIT and the generator refuses hits rather than recording a replay as a duration. Runs are therefore accumulated, each fenced by its own `--run` group, until every package has been EXECUTED by at least the generator's minimum number of them, and each weight is the median of those executions. - https://github.com/objectstack-ai/objectstack/actions/runs/39943147947 - https://github.com/objectstack-ai/objectstack/actions/runs/39936055900 - https://github.com/objectstack-ai/objectstack/actions/runs/39928834751 - https://github.com/objectstack-ai/objectstack/actions/runs/39921744055 - https://github.com/objectstack-ai/objectstack/actions/runs/39915751898 - https://github.com/objectstack-ai/objectstack/actions/runs/39909025131 - https://github.com/objectstack-ai/objectstack/actions/runs/39903431405 - https://github.com/objectstack-ai/objectstack/actions/runs/39898100438 - Newest run in the set: `39943147947`, commit `2dfeb1a77254d984c701d7b4b8f1e3892f489686` — the date this refresh carries. - Every run above had all six `Test Core (N/6)` jobs conclude `success` with its six run-summary artifacts still retained; runs that were cancelled, failed or had lost their artifacts were rejected by name in the log before any of these were used. All 75 package weights were measured in these runs; nothing was carried. ⚠️ This PR references #16173 and #16222 but does NOT carry a closing keyword for them, because a weekly lane cannot know which cards a given run ought to retire. If this is the first refresh to land, retire those two by hand as part of merging it. ## Sample depth, run-to-run spread and suite-duration ceilings Every one of the 75 weights rests on at least 3 executed runs; none is provisional. Suite-duration ceilings: 72 held unchanged (a refresh never moves one; a raise is a ruling), 3 new (@objectstack/connector-imap, @objectstack/service-mailbox, @objectstack/service-print), each new one its slowest executed run in this window x 1.25. Every package carries a ceiling. ⚠️ 27 package(s) ran OVER their held ceiling in this window (marked in the table): a reading, not a red -- under #22949 ruling E the ceiling reports on every event, and a regression is judged by the diff at the top of this body. This refresh does not raise them; that takes a ruling. Each package's executed runs in this refresh (minimum 3), the spread of its readings in seconds, and the suite-duration ceiling `Test Core` grades it against: its slowest executed run x 1.25 when first set, then held by every refresh -- a ceiling is raised only by a ruling. | package | runs | min s | median s | max s | max/min | ceiling s | | |---|--:|--:|--:|--:|--:|--:|---| | `@objectstack/service-package` | 7 | 16.11 | 51.92 | 71.42 | 4.43× | 32.90 | held; this window: 89.28; ⚠ a window run is OVER its held ceiling | | `@objectstack/knowledge-ragflow` | 7 | 1.56 | 4.23 | 4.94 | 3.16× | 3.40 | held; this window: 6.18; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-automation` | 7 | 228.43 | 450.63 | 706.96 | 3.09× | 557.10 | held; this window: 883.70; ⚠ a window run is OVER its held ceiling | | `@objectstack/hono` | 8 | 18.18 | 41.55 | 47.81 | 2.63× | 45.99 | held; this window: 59.77; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-queue` | 8 | 22.03 | 36.08 | 57.88 | 2.63× | 83.25 | held; this window: 72.36 | | `@objectstack/types` | 5 | 17.17 | 23.67 | 43.87 | 2.55× | 32.05 | held; this window: 54.84; ⚠ a window run is OVER its held ceiling | | `@objectstack/connector-openapi` | 8 | 18.63 | 33.96 | 44.40 | 2.38× | 61.57 | held; this window: 55.50 | | `@objectstack/http-conformance` | 7 | 72.41 | 125.37 | 164.64 | 2.27× | 149.61 | held; this window: 205.80; ⚠ a window run is OVER its held ceiling | | `@objectstack/verify` | 8 | 103.51 | 220.52 | 235.27 | 2.27× | 418.97 | held; this window: 294.09 | | `@objectstack/knowledge-memory` | 8 | 2.33 | 3.94 | 5.29 | 2.27× | 6.39 | held; this window: 6.61 | | `@objectstack/service-print` | 8 | 17.56 | 32.82 | 39.75 | 2.26× | 49.70 | | | `@objectstack/sdui-parser` | 8 | 2.40 | 4.23 | 5.22 | 2.17× | 5.18 | held; this window: 6.53; ⚠ a window run is OVER its held ceiling | | `@objectstack/driver-turso` | 7 | 140.04 | 189.07 | 299.45 | 2.14× | 272.37 | held; this window: 374.32; ⚠ a window run is OVER its held ceiling | | `@objectstack/connector-slack` | 8 | 18.99 | 34.99 | 40.44 | 2.13× | 55.45 | held; this window: 50.56 | | `@objectstack/example-embed-objectql` | 7 | 16.38 | 28.22 | 34.78 | 2.12× | 51.51 | held; this window: 43.48 | | `@objectstack/formula` | 7 | 28.42 | 39.65 | 60.21 | 2.12× | 56.95 | held; this window: 75.27; ⚠ a window run is OVER its held ceiling | | `@objectstack/organizations` | 7 | 55.05 | 73.20 | 111.27 | 2.02× | 137.91 | held; this window: 139.10 | | `@objectstack/client` | 8 | 77.77 | 147.21 | 157.03 | 2.02× | 179.74 | held; this window: 196.30 | | `@objectstack/service-i18n` | 8 | 10.64 | 17.69 | 21.38 | 2.01× | 49.45 | held; this window: 26.73 | | `@objectstack/observability` | 7 | 1.76 | 2.89 | 3.53 | 2.00× | 4.24 | held; this window: 4.41 | | `@objectstack/client-react` | 8 | 6.90 | 12.44 | 13.70 | 1.99× | 16.23 | held; this window: 17.13 | | `@objectstack/connector-mcp` | 7 | 23.93 | 43.15 | 47.20 | 1.97× | 54.85 | held; this window: 59.01 | | `@objectstack/metadata` | 7 | 93.81 | 119.96 | 185.03 | 1.97× | 194.04 | held; this window: 231.29 | | `@objectstack/metadata-fs` | 7 | 26.35 | 37.42 | 51.08 | 1.94× | 61.33 | held; this window: 63.86 | | `@objectstack/driver-mongodb` | 8 | 59.33 | 100.00 | 111.40 | 1.88× | 158.96 | held; this window: 139.26 | | `@objectstack/embedder-openai` | 8 | 3.71 | 5.56 | 6.95 | 1.87× | 9.10 | held; this window: 8.69 | | `@objectstack/trigger-record-change` | 7 | 49.00 | 81.69 | 91.73 | 1.87× | 109.12 | held; this window: 114.67 | | `@objectstack/trigger-schedule` | 7 | 33.01 | 43.22 | 60.32 | 1.83× | 72.40 | held; this window: 75.41 | | `@objectstack/service-sms` | 6 | 18.11 | 22.13 | 32.73 | 1.81× | 47.04 | held; this window: 40.92 | | `@objectstack/plugin-dev` | 7 | 36.45 | 50.78 | 64.25 | 1.76× | 87.97 | held; this window: 80.32 | | `@objectstack/rest` | 7 | 508.99 | 876.56 | 890.52 | 1.75× | 878.41 | held; this window: 1113.15; ⚠ a window run is OVER its held ceiling | | `@objectstack/plugin-approvals` | 6 | 219.33 | 360.06 | 383.42 | 1.75× | 290.60 | held; this window: 479.28; ⚠ a window run is OVER its held ceiling | | `@objectstack/runtime` | 6 | 678.01 | 848.96 | 1178.93 | 1.74× | 913.09 | held; this window: 1473.67; ⚠ a window run is OVER its held ceiling | | `@objectstack/driver-sqlite-wasm` | 5 | 67.06 | 85.63 | 116.24 | 1.73× | 123.14 | held; this window: 145.30 | | `@objectstack/example-showcase` | 8 | 83.31 | 130.48 | 143.90 | 1.73× | 192.05 | held; this window: 179.88 | | `@objectstack/plugin-auth` | 8 | 272.53 | 405.25 | 468.61 | 1.72× | 600.45 | held; this window: 585.77 | | `@objectstack/service-job` | 7 | 19.16 | 31.65 | 32.69 | 1.71× | 45.32 | held; this window: 40.86 | | `@objectstack/connector-rest` | 7 | 27.52 | 34.78 | 46.92 | 1.70× | 60.82 | held; this window: 58.66 | | `@objectstack/objectql` | 7 | 582.15 | 970.12 | 986.67 | 1.69× | 952.27 | held; this window: 1233.34; ⚠ a window run is OVER its held ceiling | | `@objectstack/metadata-core` | 7 | 15.96 | 25.61 | 27.02 | 1.69× | 38.66 | held; this window: 33.79 | | `@objectstack/core` | 5 | 99.84 | 164.54 | 168.07 | 1.68× | 151.42 | held; this window: 210.09; ⚠ a window run is OVER its held ceiling | | `@objectstack/metadata-protocol` | 5 | 516.19 | 629.62 | 865.18 | 1.68× | 769.71 | held; this window: 1081.49; ⚠ a window run is OVER its held ceiling | | `@objectstack/cloud-connection` | 7 | 170.74 | 268.04 | 285.81 | 1.67× | 163.89 | held; this window: 357.27; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-messaging` | 5 | 134.98 | 158.74 | 223.92 | 1.66× | 166.91 | held; this window: 279.91; ⚠ a window run is OVER its held ceiling | | `@objectstack/mcp` | 7 | 69.87 | 112.36 | 115.71 | 1.66× | 108.17 | held; this window: 144.64; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-realtime` | 8 | 7.78 | 9.31 | 12.82 | 1.65× | 27.68 | held; this window: 16.03 | | `@objectstack/service-knowledge` | 7 | 22.04 | 28.49 | 36.17 | 1.64× | 48.58 | held; this window: 45.22 | | `@objectstack/example-todo` | 8 | 38.25 | 58.58 | 61.94 | 1.62× | 88.84 | held; this window: 77.43 | | `@objectstack/driver-sql` | 8 | 263.81 | 384.28 | 426.56 | 1.62× | 450.76 | held; this window: 533.21 | | `@objectstack/trigger-api` | 4 | 13.55 | 14.65 | 21.79 | 1.61× | 42.12 | held; this window: 27.24 | | `@objectstack/service-datasource` | 8 | 84.35 | 128.92 | 135.61 | 1.61× | 128.93 | held; this window: 169.52; ⚠ a window run is OVER its held ceiling | | `@objectstack/spec` | 3 | 1024.29 | 1606.55 | 1640.26 | 1.60× | 1903.55 | held; this window: 2050.33 | | `@objectstack/service-cache` | 4 | 1.46 | 1.64 | 2.33 | 1.60× | 3.69 | held; this window: 2.92 | | `@objectstack/connector-imap` | 8 | 2.48 | 3.67 | 3.96 | 1.59× | 4.95 | | | `@objectstack/example-crm` | 6 | 32.09 | 41.32 | 50.74 | 1.58× | 68.83 | held; this window: 63.43 | | `@objectstack/driver-memory` | 8 | 98.39 | 141.51 | 155.54 | 1.58× | 171.63 | held; this window: 194.43 | | `@objectstack/downstream-contract` | 7 | 12.54 | 16.85 | 19.19 | 1.53× | 22.71 | held; this window: 23.99 | | `@objectstack/plugin-security` | 7 | 302.98 | 360.02 | 461.76 | 1.52× | 474.43 | held; this window: 577.20 | | `@objectstack/plugin-hono-server` | 7 | 55.38 | 77.51 | 83.95 | 1.52× | 78.61 | held; this window: 104.94; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-cluster` | 8 | 18.18 | 21.59 | 24.62 | 1.35× | 28.46 | held; this window: 30.78 | | `@objectstack/service-cluster-redis` | 6 | 17.49 | 22.41 | 23.54 | 1.35× | 28.00 | held; this window: 29.43 | | `@objectstack/service-settings` | 6 | 126.17 | 149.93 | 162.17 | 1.29× | 157.56 | held; this window: 202.72; ⚠ a window run is OVER its held ceiling | | `@objectstack/plugin-webhooks` | 6 | 85.62 | 94.12 | 109.08 | 1.27× | 108.05 | held; this window: 136.35; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-mailbox` | 6 | 52.57 | 57.26 | 66.56 | 1.27× | 83.20 | | | `@objectstack/plugin-pinyin-search` | 6 | 31.53 | 37.94 | 39.79 | 1.26× | 62.37 | held; this window: 49.74 | | `@objectstack/lint` | 5 | 166.18 | 200.52 | 206.22 | 1.24× | 332.18 | held; this window: 257.79 | | `@objectstack/plugin-sharing` | 6 | 172.95 | 209.26 | 214.60 | 1.24× | 235.53 | held; this window: 268.25 | | `@objectstack/cli` | 7 | 2499.21 | 2899.02 | 3047.05 | 1.22× | 2868.12 | held; this window: 3808.81; ⚠ a window run is OVER its held ceiling | | `create-objectstack` | 6 | 24.07 | 26.36 | 28.80 | 1.20× | 38.40 | held; this window: 36.00 | | `@objectstack/vitest-filter-preflight` | 6 | 25.00 | 28.34 | 29.87 | 1.19× | 28.93 | held; this window: 37.35; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-storage` | 5 | 195.26 | 223.46 | 232.40 | 1.19× | 208.28 | held; this window: 290.51; ⚠ a window run is OVER its held ceiling | | `@objectstack/service-analytics` | 6 | 385.72 | 412.58 | 424.85 | 1.10× | 440.54 | held; this window: 531.07 | | `@objectstack/platform-objects` | 6 | 118.32 | 123.56 | 128.64 | 1.09× | 135.03 | held; this window: 160.80 | | `@objectstack/plugin-audit` | 6 | 240.69 | 249.24 | 260.80 | 1.08× | 185.93 | held; this window: 326.01; ⚠ a window run is OVER its held ceiling | | `@objectstack/plugin-email` | 6 | 117.89 | 119.76 | 125.02 | 1.06× | 119.94 | held; this window: 156.27; ⚠ a window run is OVER its held ceiling | ## Measured per-shard suite time on the newest run in the set ``` 1: 497s | 2: 1214s | 3: 106s | 4: 363s | 5: 871s | 6: 229s ``` ## Predicted bins, before and after ``` BEFORE partition-test-shards: self-test OK (73 measured packages -> 75 shard items, 6 shards, max/mean 1.00x <= 1.3x, floor 1331s, bins 1937.14/1938.17/1937.85/1935.62/1934.09/1935.99s within the 2205.79s density cap, file-level slices: @objectstack/cli x3) AFTER partition-test-shards: self-test OK (75 measured packages -> 77 shard items, 6 shards, max/mean 1.00x <= 1.3x, floor 1607s, bins 2488.82/2488.60/2488.10/2488.54/2487.54/2487.64s within the 2899.02s density cap, file-level slices: @objectstack/cli x3) ``` ## No checks will start on this PR by themselves It was opened with the Actions `GITHUB_TOKEN`, and GitHub's recursion guard means a PR opened that way triggers no workflow runs. Push any commit to the branch, or close and reopen the PR, to start CI. Refs #16464, #16173, #16222. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: objectstack-fleet[bot] <332303061+objectstack-fleet[bot]@users.noreply.github.com>
1 parent 1000cc7 commit 97be89b

1 file changed

Lines changed: 255 additions & 434 deletions

File tree

0 commit comments

Comments
 (0)