🔧 ci: pin Deno to v2.8.3 to work around v2.9.0 JSR warm-cache regression#105
Conversation
v2.9.0 fails JSR integrity checks on warm cache for files without a manifest checksum (denoland/deno#35529). Size Report builds twice on the same runner, so the base build hits the cache and errors on `@ts-morph/common@0.27.0`'s dynamic `require("./crypto")`. Restore `v2.x` once v2.9.1 ships.
commit: |
Merging this PR will degrade performance by 10.29%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | pack complex layout |
47.8 ms | 53.4 ms | -10.54% |
| ❌ | WallTime | pack large list |
63.4 ms | 70.5 ms | -10.03% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing fix-cache-bug (35219e9) with main (9de7762)2
Footnotes
-
18 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
main(5e253a7) during the generation of this report, so 9de7762 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
|
(In our meeting discussing this and) we acknowledge that this change shouldn't effectively be a regression. Something is going on and being a little funky with the results. We don't have our permissions squared away yet to mark this as an "Ok regression" (and is it really?) so it feels reasonable to proceed with merging. |
What does this PR do?
Pins
deno-versiontov2.8.3insize-report.ymlandverify.yaml(previouslyv2.x, which floats to v2.9.0).Deno v2.9.0 has a regression denoland/deno#35529 where JSR files that have no manifest checksum (e.g.
@ts-morph/common@0.27.0's dynamicrequire("./crypto"), which resolves to a nonexistent file) pass on cold download but fail integrity check on warm cache:The Size Report workflow builds twice on one runner (head, then base) sharing
~/.cache/deno. The head build downloads fresh and passes; the base build hits the warm cache and errors — example failing run. Every Size Report run since 2026-06-30 has failed this way. Verify hasn't been bitten yet because it only builds once per runner, but I pinned it too so the next non-trivial refactor doesn't reintroduce a double build.The upstream fix has been merged but no v2.9.1 tag exists yet. A comment in each workflow says to restore
v2.xonce it ships.Type of change
Checklist
pnpm test) — CI verifiespnpm format)AI-generated code disclosure