Deno v2.2.0stable Released Feb 19, 2025
Impact Score: 5/10

Deno v2.2.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: deno ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Deno v2.2.0. Source highlight: feat(bench): add `--permit-no-files` (#27048)

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • feat(bench): add `--permit-no-files` (#27048)
  • feat(bench): add `warmup` and `n` for controlling number of iterations
  • feat(check/lsp): support "compilerOptions.rootDirs" (#27844)
  • feat(compile): show remote modules and metadata size when compiling (#27415)
  • feat(compile): support sloppy imports (#27944)
  • feat(ext/cache): support lscache (#27628)

โšก Performance & Enhancements (3)

  • perf(check): use v8 code cache for extension sources in `deno check` (#28089)
  • perf(lsp): don't clone asset text (#28165)
  • perf(lsp): make auto-imports a little faster (#28106)

๐Ÿ”ง Bug Fixes & Patches (6)

  • feat(unstable): support multiple fixes from lint plugins (#28040)
  • fix(check): npm resolution errors to tsc diagnostics (#28174)
  • fix(check): support sloppy imports with "compilerOptions.rootDirs" (#27973)
  • fix(cli): remove extraneous comma in task --eval help (#26985)
  • fix(completions): remove problematic character for powershell (#28102)
  • fix(ext/node): `DatabaseSync#exec` should execute batch statements (#28053)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### 2.2.0 / 2025.02.18 - feat(bench): add `--permit-no-files` (#27048) - feat(bench): add `warmup` and `n` for controlling number of iterations (#28123) - feat(check/lsp): support "compilerOptions.rootDirs" (#27844) - feat(compile): show remote modules and metadata size when compiling (#27415) - feat(compile): support sloppy imports (#27944) - feat(ext/cache): support lscache (#27628) - feat(ext/canvas): enhance `createImageBitmap` specification compliance (#25517) - feat(ext/node): implement `node:sqlite` (#27308) - feat(http): add otel metrics (#28034) - feat(jupyter): make GPUTexture and GPUBuffer displayable (#28117) - feat(lint): add JavaScript plugin support (#27203) - feat(lint): add rules for react/preact (#27162) - feat(lint): change behavior of `--rules` flag (#27245) - feat(node:http): add http information support (#27381) - feat(outdated): interactive update (#27812) - feat(task): add support for task wildcards (#27007) - feat(unstable): WebTransport (#27431) - feat(unstable): add `lint.plugins` to config schema (#27982) - feat(unstable): add basic support for otel trace links (#27727) - feat(unstable): add js lint plugin source code helpers (#28065) - feat(unstable): add lint plugin ast types (#27977) - feat(unstable): add test for lint plugin destroy hook (#27981) - feat(unstable): align lint ast with TSEStree (#27996) - feat(unstable): support multiple fixes from lint plugins (#28040) - feat(unstable): type lint plugin visitor (#28005) - feat: Deno.cwd() no longer requires --allow-read permission (#27192) - feat: TypeScript 5.7 (#27857) - feat: Upgrade V8 to 13.4 (#28080) - feat: implement `process.cpuUsage` (`Deno.cpuUsage`) (#27217) - feat: support XDG_CACHE_HOME for deno dir on macos (#28173) - fix(check): npm resolution errors to tsc diagnostics (#28174) - fix(check): support sloppy imports with "compilerOptions.rootDirs" (#27973) - fix(cli): remove extraneous comma in task --eval help (#26985) - fix(completions): remove problematic character for powershell (#28102) - fix(ext/node): `DatabaseSync#exec` should execute batch statements (#28053) - fix(ext/node): enforce -RW perms on `node:sqlite` (#27928) - fix(ext/node): expose sqlite changeset constants (#27992) - fix(ext/node): implement SQLite Session API (#27909) - fix(ext/node): implement StatementSync#iterate (#28168) - fix(ext/node): implement `DatabaseSync#applyChangeset()` (#27967) - fix(ext/node): represent sqlite blob as Uint8Array (#27889) - fix(ext/node): sqlite bind support bigint values (#27890) - fix(ext/node): support read-only database in `node:sqlite` (#27930) - fix(ext/node): throw RangeError when sqlite INTEGER is too large (#27907) - fix(ext/node): throw Session methods when database is closed (#27968) - fix(ext/node): use primordials in `ext/node/polyfills/path/common.ts` (#28164) - fix(ext/sqlite): add `sourceSQL` and `expandedSQL` getters (#27921) - fix(init): force --reload if npm or jsr package (#28150) - fix(install/global): do not error if path is an npm pkg and relative file (#26975) - fix(lint): `Deno.lint.runPlugin` throws in `deno run` (#28063) - fix(lint): clear plugin diagnostics on each lint file run (#28011) - fix(lint): disable incremental caching if JS plugins are used (#28026) - fix(lint): don't mark plugin diagnostic as fixable, if it's not (#28147) - fix(lint): don't show docs URLs for plugins (#28033) - fix(lint): out of order diagnostics for plugins (#28029) - fix(lint): react-rules-of-hooks works with destructuring (#28113) - fix(lint): update jsx/react related rules and names (#27836) - fix(lsp): include description for auto-import completions (#28088) - fix(node/sqlite): sqlite named parameters (#28154) - fix(publish): error on missing name field (#27131) - fix(task): support --frozen flag (#28094) - fix(task): update --filter flag description (#26974) - fix(unstable): add missing rule context types (#28014) - fix(unstable): align js lint context API with eslint (#28066) - fix(unstable/temporal): implement `Temporal.ZonedDateTime.getTimeZoneTransition` (#27770) - fix(workspace): diagnostic for imports in member with importMap at root (#28116) - fix: add hint to run with `--no-check` when type checking fails (#28091) - fix: cache bust http cache on lockfile integrity mismatch (#28087) - fix: handle all values for buffers in turbocall codegen (#28170) - perf(check): use v8 code cache for extension sources in `deno check` (#28089) - perf(lsp): add built-in tracing support for the LSP (#27843) - perf(lsp): don't clone asset text (#28165) - perf(lsp): make auto-imports a little faster (#28106)