Avatar for the cornerstonejs user
cornerstonejs
codecs
BlogDocsChangelog

Performance History

Latest Results

ci: bound every pr-checks job with timeout-minutes (#92) `build (big-endian)` wedged on PR #70 and sat in_progress for over 80 minutes while its nine sibling matrix legs finished in 58-239s. Nothing bounded it, so it was headed for GitHub's 6-hour default. fail-fast is off for that matrix by design, so one wedged leg keeps the entire run -- and test, dist-size, browser-smoke and codspeed-walltime, which all need it -- pending that whole time. bench.yml also waits on this workflow's dist artifacts, so its runs stall too. A PR looks like it is "just being slow" the entire time. browser-smoke (15) and codspeed-walltime (30) already carried timeouts; this gives the other four the same treatment, sized off a green run on main: job typical limit detect-changes 13s 10m build (slowest) 239s 20m (libjxl; leaves room for a cold image pull) test 53s 15m dist-size 47s 10m Additions only -- no existing line changes. release.yml's build matrix has the same gap and the same 6-hour exposure, but it is left for a follow-up: PR #63 is currently editing that job's `if:` and touching it here would conflict. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
main
6 hours ago
build: move the CI toolchain to node 24 (#91) * build: move the CI toolchain to node 24 Node 20 reached end of life on 2026-04-30 and node 22 (Jod) has been in maintenance-only since 2025-10-21. Node 24 (Krypton) is the active LTS until 2026-10-20 and is supported to 2028-04-30, and the release and publish jobs already pinned 24.19.0 for the npm version it bundles -- so the rest of the repo was building and testing on a line the release never used. Everything that resolves a node now resolves 24: - release.yml build, pr-checks.yml build / test / dist-size / browser-smoke: '22' -> '24' - release.yml release + publish: 24.19.0 -> 24.20.0 - bench.yml codspeed-bench, pr-checks.yml codspeed-walltime: 22.23.1 -> 24.20.0 - root package.json engines.node: >=22.13 -> >=24 - tools/docker/Dockerfile: nodesource setup_22.x -> setup_24.x 24.20.0 (2026-08-26) is the current LTS patch, and one exact version now covers every exact pin in the repo. It bundles npm 11.19.0, still past the 11.5.1 that OIDC trusted publishing needs, so the publish job's no-`npm install --global` property is preserved -- tools/release/README.md updated for the new numbers. THE CODSPEED PINS ARE A BASELINE RE-SEED. 22.23.1 -> 24.20.0 crosses a V8 major, and docs/ci/self-hosted-runner.md is explicit that a node change shifts instruction counts the way a CPU or glibc change does. Expect the first main run after this to report large deltas on every bench, and read none of them as regressions. Noted in that doc alongside the existing pin-exactly rule. Corepack is still bundled in node 24 (verified: deps/corepack is present in the v24.20.0 tree), so `corepack enable pnpm` on the nashua box is unaffected. The existing "node 25 unbundles corepack" caveat stays where it is -- it is about a bump this commit does not make. Published packages keep `"node": ">=0.14"`. That constrains consumers of the wasm codecs, not this repo's build toolchain, and nothing here needs it raised. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * build: finish the node 24 move (devcontainer, cache keys, dist-size) Follow-up on review of #91. The bump left three things behind on 22: - .devcontainer/Dockerfile still ran setup_22.x under a comment reading "node 22 to match CI", which stopped being true in the same commit -- and engines.node became >=24, so pnpm now warns "Unsupported engine" on every install in that container. Bumped to setup_24.x. The comment now says what is actually shared with CI (the node major) and what deliberately is not (the older emsdk pin), so it does not go stale the same way again. - The node_modules cache keys in the test, browser-smoke and codspeed-walltime jobs, plus codspeed-bench in bench.yml, all carried a literal node22 discriminator. bench.yml's key hashes only pnpm-lock.yaml and pnpm-workspace.yaml, so nothing in a node-only bump invalidates it: the bench would have restored a node-22 node_modules tree, skipped the install step (gated on cache-hit), and measured the "clean node 24 re-seed" against dependencies installed by the previous V8 major. Now node24, with the reason for the discriminator written down next to the build job's key so the next bump moves it too. - dist-size had no setup-node at all, contrary to what the PR description claimed, so the size gate ran on whatever node the runner image shipped. check.js only needs fs/path/zlib, so this was harmless rather than broken, but it was unpinned and could sit below the new engines floor. Pinned '24' like every other job. Also corrected two setup-node comments that justified the step with "fails pnpm 11's engine check (>=22.13)" -- that floor is this repo's engines.node and is now >=24. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
main
1 day ago

Latest Branches

CodSpeed Performance Gauge
-41%
Expand `hrtime` utility to support Web Workers.#70
1 day ago
54741d2
AlasDiablo:worker-process-timer
CodSpeed Performance Gauge
-21%
1 day ago
921998b
ci/job-timeouts
CodSpeed Performance Gauge
×2.1
1 day ago
1f5fc52
ci/node-24
© 2026 CodSpeed Technology
Home Terms Privacy Docs