Skip to content

Releases: denoland/deno

v2.6.1

15 Dec 21:01
1ba0932

Choose a tag to compare

2.6.1 / 2025.12.15

  • feat(unstable): deploy config allow app to be optional (#31567)
  • fix(add): include type-only imports when building graph (#31552)
  • fix(cli): add streams as transferable types (#31586)
  • fix(compile): intel mac compile fix (#31575)
  • fix(compile): sentinal conflict with strtab on intel mac (#31587)
  • fix(ext/node): DatabaseSync compatibility (#31515)
  • fix(x): correct alias deno command location for Windows (#31573)
  • fix(x): fix executing native binary on windows + some cleanup (#31551)
  • fix: --preload and --require flags only available in runtime subcommands
    (#31614)
  • fix: adjust deno_cache version (#31553)
  • fix: source map file names to non-existent paths (#31564)

v2.6.0

10 Dec 17:00
d5b1548

Choose a tag to compare

2.6.0 / 2025.12.10

Read more: http://deno.com/blog/v2.6

  • feat(BREAKING/install): require -- for script arg in deno install -g and
    support installing multiple packages (#31292)
  • feat(cli): add approve-scripts AKA "approve-builds" subcommand (#31472)
  • feat(cli): filter out common internal frames that add noise, dim and grey
    internal frames in stack traces (#31247)
  • feat(cli): print working dir in grey in stack traces, relative paths in
    check + compile output (#31194)
  • feat(config): allow storing npm constraints to allow running lifecycle scripts
    for (#31075)
  • feat(coverage): add dark-mode toggle for html output (#31140)
  • feat(ext/node): implement FileHandle.appendFile(data[, options]) (#31301)
  • feat(ext/web): add ImageData Float16Array support (#31394)
  • feat(ext/web): stabilize BroadcastChannel (#30770)
  • feat(ext/web): transferable {Readable,Writable,Transform}Stream (#31126)
  • feat(init/npm): add --yes flag to bypass prompt (#31499)
  • feat(install): add --lockfile-only flag (#31376)
  • feat(lint): plugin API has env and read access (#31327)
  • feat(node): allow subpath imports that start with '#/' (#31520)
  • feat(permissions): allow Deno.env.toObject() for partial env permission
    (#31267)
  • feat(permissions): allow flags should override deny when more specific
    (#31224)
  • feat(process): support integer signals in Deno.kill and child.kill (#31153)
  • feat(unstable): add socket.dev integration for deno audit (#31106)
  • feat(unstable): support authenticated socket.dev audit reports (#31370)
  • feat(upgrade): ability to show additional message on upgrade (#31170)
  • feat: V8 14.2 (#31178)
  • feat: --ignore-read (#31363)
  • feat: deno init --empty (#31516)
  • feat: add --require run arg to support commonJS (#31201)
  • feat: add Float16Array support (#31410)
  • feat: add --ignore-env=... (#31187)
  • feat: add deno x (alias dx) for conveniently running binaries from
    packages (#31138)
  • feat: add native source maps support (#31268)
  • feat: include @types/node type declarations out of the box (#31502)
  • feat: support publish: false in deno.json (#30852)
  • feat: use Node.js timers by default (#31272)
  • feat: wasm source phase imports (#31486)
  • fix(audit): remove unwrap in favor of log, don't print empty reports (#31479)
  • fix(bundle): Deno.bundle work in Worker (#31316)
  • fix(bundle): avoid name clash in hack (#31409)
  • fix(bundle): do not error on failing to clean up esbuild dir (#31408)
  • fix(bundle): don't use createRequire when targeting browser in Deno.bundle
    (#31534)
  • fix(bundle): fix import.meta.main transform with jsr entrypoint (#31415)
  • fix(bundle): support android (#31521)
  • fix(bundle): treat bun specifiers as external by default (#31411)
  • fix(check): ensure @types/node is cached when already in resolution (#31235)
  • fix(check): fix nil deref with --unstable-tsgo (#31416)
  • fix(check): move types not found error to tsc diagnostic (#31509)
  • fix(check): move unknown builtin node: module errors to tsc diagnostics
    (#31449)
  • fix(cli): make --eval-file flag work without equals sign (#31151)
  • fix(cli): put tasks first in zsh dynamic completions (#31350)
  • fix(compile): support --preload flag in deno compile (#31152)
  • fix(config): support UTF-16 surrogate pairs in unicode escape sequences in
    json config (#31264)
  • fix(deps): use windows-sys for all windows targets (#31308)
  • fix(ext/napi): suppress deprecated Buffer warnings (#31245)
  • fix(ext/net): support IPv6 zone indices in Deno.connect() (#31123)
  • fix(ext/node): Add sqlite setAllowUnknownNamedParameters option (#31202)
  • fix(ext/node): FileHandle compatibility (#31164)
  • fix(ext/node): StatementSync.iterate() should reset is_iter_finished flag
    on every call (#31361)
  • fix(ext/node): url.domainToASCII returns empty string for invalid domains
    (#31219)
  • fix(ext/node): autopadding behavior on crypto.Cipheriv (#31389)
  • fix(ext/node): define process.versions.sqlite (#31277)
  • fix(ext/node): ensure 'exit' event is fired only once for worker_threads
    (#31231)
  • fix(ext/node): export ppid (#31137)
  • fix(ext/node): fix sqlite extension used for testing; ensure related tests are
    actually meaningful (#31455)
  • fix(ext/node): implement DatabaseSync.aggregate() (#31461)
  • fix(ext/node): implement DatabaseSync.function() and better error details
    (#31386)
  • fix(ext/node): implement dns.lookupService (#31310)
  • fix(ext/node): implement process.setegid() (#31155)
  • fix(ext/node): implement process.setgid() and process.setuid() (#31162)
  • fix(ext/node): implement process:seteuid() (#31160)
  • fix(ext/node): implement performance.timerify() (#31238)
  • fix(ext/node): implement util.getSystemErrorMessage() (#31147)
  • fix(ext/node): prevent cipher operations after finalize (#31533)
  • fix(ext/node): reimplement setImmediate API (#30328)
  • fix(ext/node): respect abort signal option on FileHandle.readFile (#31462)
  • fix(ext/node): respects flag option on fs.readfile and fs.readfilesync
    (#31129)
  • fix(ext/node): segfault on calling StatementSync methods after connection
    has closed (#31331)
  • fix(ext/node): sqlite setAllowUnknownNamedParameters error message (#31319)
  • fix(ext/node): sqlite.DatabaseSync explicit resource management compatibility
    (#31311)
  • fix(ext/node): truncate first non-hex value on Buffer.from (#31227)
  • fix(ext/signals): don't run exit hooks at non-exit times (#31269)
  • fix(ext/web): Event dispatch should continue after reporting exception
    (#31297)
  • fix(ext/web): console.dir respects indent level (#31412)
  • fix(install): report installed npm packages when not using node_modules, fix
    double counting (#31536)
  • fix(install): rewrite node_modules .bin shim generation for windows to be like
    npm (#31494)
  • fix(lsp): organizeImports without resolving specifiers (#31230)
  • fix(lsp): don't provide organizeImports action when client provides it
    (#31530)
  • fix(lsp): lint-ignore directives follow leading comments (#31200)
  • fix(lsp): set lockfile_skip_write unconditionally (#31191)
  • fix(lsp): store assigned compiler options for cache files (#31377)
  • fix(node): ensure process.argv is an array of strings (#31322)
  • fix(node): missing statfs export from node:fs/promises (#31528)
  • fix(node): stub missing process.sourceMapsEnabled (#31358)
  • fix(node): support advanced serialization in IPC (#31380)
  • fix(node/assert): deepStrictEqual now correctly handles Number objects
    (#31233)
  • fix(node/crypto): respect authTagLength in createCipheriv for GCM cip…
    (#31253)
  • fix(node/net): return string family in server.address() (#31465)
  • fix(node/process): make process.stdin.isTTY writable (#31464)
  • fix(node/timers): ensure active timers entry is deleted on
    Timeout.prototype.refresh (#31436)
  • fix(node:console): ensure that the node:console implementation has an
    implementation for emitWarning in scope (#31263)
  • fix(resolver): fall back to execution if can't resolve types (#31507)
  • fix(schema): add bundle to unstable field schema (#31395)
  • fix(test): Remove ANSI Escape Codes for Junit Reports (#30854)
  • fix(tsgo): do not error out on non js/ts imports from npm packages (#31478)
  • fix(tunnel): misc fixes (#30968)
  • fix(types): add Symbol.iterator to NodeListOf (fixes #31382) (#31384)
  • fix(unstable): don't panic on invalid reported lint range (#31261)
  • fix: is_elf panic in sui (#31388)
  • fix: change errors message suggesting to run approve-scripts (#31493)
  • fix: clippy::derivable_impls (#31460)
  • fix: fetch fd leak (#31375)
  • fix: fix npx running in test, make approve-scripts test less flaky (#31501)
  • fix: make '@types' package resolution more consistent (#31512)
  • fix: skip doing npm resolution in more cases (#31305)
  • fix: update JSDoc for Deno.cwd() API (#31256)
  • fix: update deno_error to 0.7.1 (#31450)
  • fix: update permission-broker-response.v1.json (#31328)
  • fix: upgrade denokv_* to 0.13 and rusqlite to 0.27 (#31374)
  • fix: upgrade to swc_ecma_parser 27 (#31427)
  • fix: wpt assert expectation correctly even if the filter has a layer (#30574)
  • perf(node): implement getOwnNonIndexProperties in native code (#31393)
  • perf(node): optimize Buffer compare (#31425)

v2.5.6

30 Oct 04:46
1b5f311

Choose a tag to compare

2.5.6 / 2025.10.29

  • Revert "chore: update urlpattern (#31054)" (#31117)
  • fix(ext/node): implement StatementSync#columns() method (#31119)
  • fix(windows): re-allow spawning bat and cmd files (#31118)
  • fix(windows): strip periods and trailing slashes when normalizing paths
    (#31131)

v2.5.5

28 Oct 20:12
367ecdd

Choose a tag to compare

2.5.5 / 2025.10.28

  • feat(unstable): ability to exclude packages from minimum dependency age
    constraint (#31031)
  • feat(unstable): ability to only install dependencies older than a certain date
    (#30752)
  • feat(unstable): ability to specify minimum dependency age in deno.json file
    (#31007)
  • feat(unstable): add deno audit subcommand (#30966)
  • feat(unstable): add process id to permission broker messages (#31050)
  • feat(unstable): dynamic command-line completions for deno task (#30670)
  • feat(unstable): typescript-go integration for deno check (#30920)
  • fix(audit): handle 'review' actions (#31100)
  • fix(check): error when type checking after deduping packages (#31049)
  • fix(check): fall back to copying tsgo binary if rename fails (#31074)
  • fix(check): respect "compilerOptions.skipLibCheck" for graph errors (#30989)
  • fix(check): support isolatedDeclarations (#31061)
  • fix(check): support text and bytes imports with --unstable-tsgo (#31084)
  • fix(cli/args): empty permissions in config should not require -P (#31063)
  • fix(coverage): don't process coverage for blob: urls (#31035)
  • fix(docs): Deno.args example doesn't work (#30969)
  • fix(docs): documented allowed subdomain should be gist and not user for
    githubusercontent.com (#30913)
  • fix(ext/http): display localhost url once on windows (#31088)
  • fix(ext/http): make websocket response headers mutable (#31000)
  • fix(ext/node): dns.resolve6 compatibility (#30974)
  • fix(ext/node): fs.read/fs.readSync and fs.write/fs.writeSync compatibility
    (#31013)
  • fix(ext/node): path.matchesGlob compatibility (#30976)
  • fix(ext/node): checking Symbol in env should not ask for permission
    (#30965)
  • fix(ext/node): cpus() should not error when there's no cpu info (#31097)
  • fix(ext/node): false deprecation warning on crypto.createHmac (#31025)
  • fix(ext/node): handle empty writes in chunked HTTP requests (#31066)
  • fix(ext/node): handle multiple calls in inspector.Session.post() (#31067)
  • fix(ext/node): impl sqlite 'backup' capability (#29842)
  • fix(ext/node): implement FileHandle.readLines() (#31107)
  • fix(ext/node): inconsistent error message thrown by AssertionError (#31089)
  • fix(ext/node): make kReinitializeHandle work for TLS wrap (#31079)
  • fix(ext/node): process.moduleLoadList as undefined (#31022)
  • fix(ext/node): support option object parameter on fs.write and
    fs.writeSync (#30999)
  • fix(ext/web): fix promise chain leak of ReadableStream (#30871)
  • fix(fmt/json): support hexadecimal numbers, plus sign on numbers, and words
    with underscores (#31057)
  • fix(kv): do not error when creating kv db with relative path and -A (#31021)
  • fix(lockfile): purged package reqs should be removed from the jsr deps when
    changing workspace config (#30998)
  • fix(lsp): add support for source.organizeImports (#31016)
  • fix(lsp): refresh configuration when tsconfig.json is changed (#30993)
  • fix(napi): Fix misused napi_callback_info in CallbackInfo (#30983)
  • fix(npm): add a deduplication pass and reduce lockfile diffs (#30973)
  • fix(npm): handle deno run/install of npm package with only directories.bin
    (#30919)
  • fix(npm): occasional panic when upgrading npm package constraints (#31006)
  • fix(npm): regression resolving npm bin for default when only one entry
    (#31055)
  • fix(process): case insenstive check for disallowing .bat and .cmd (#30967)
  • fix(rt): prevent Event to be overwritten on bootstrap (#30971)
  • fix(unstable): read npm lazy caching from unstable config in deno.json as well
    (#31026)
  • fix: Deno.serve correctly passes tcpBacklog option (#30748)
  • fix: debug log for package.json being found was incorrect (#31062)
  • fix: regex pattern syntax in config-file.v1.json (#31038)
  • fix: show referrer range in deno_core loader errors (#30981)

v2.5.4

09 Oct 12:49
6fbce91

Choose a tag to compare

2.5.4 / 2025.10.09

  • fix(cache): don't try to set up node_modules with node_modules_dir manual in
    deno cache (#30957)
  • fix(cli): jsx pragma-related swc panics (#30935)
  • fix(ext/node): fs.cp and fs.cpSync compatibility (#30502)
  • fix(ext/node): fs.stat and fs.statSync compatibility (#30866)
  • fix(ext/node): avoid stack overflow in node:zlib's gunzip (#30865)
  • fix(ext/node): fs.realpath buffer encoding (#30885)
  • fix(ext/node): inspect X509Certificate class (#30882)
  • fix(ext/node): map BadResource error to the corresponding node error (#30926)
  • fix(ext/node): omit smi from zlib.crc32 op function (#30907)
  • fix(tunnel): prevent auth subprocess loop with tasks (#30896)
  • fix(tunnel): unhide --tunnel flag (#30940)
  • fix(update): preserve tilde in version range (#30946)
  • fix(webgpu): crash after isolate disposal (#30909)
  • fix: use ArrayIsArray primordial (#30927)

v2.5.3

03 Oct 04:39
1c3d04c

Choose a tag to compare

2.5.3 / 2025.10.02

  • feat(unstable): add permission broker (#30826)
  • feat(unstable): permission broker - support custom error messages (#30902)
  • feat(unstable): support named pipes on Windows for the permission broker (#30894)
  • fix(check): do not error for unsupported URL schemes (#30904)
  • fix(clean): do not panic on failure to get local cache path in clean --except (#30895)
  • fix(cli/util): terminate watch file with sigint (#30635)
  • fix(dts): update some GPU types to not cause errors in upcoming DOM type declarations (#30893)
  • fix(ext/node): allow ATTACH DATABASE with --allow-all (#30763)
  • fix(ext/node): setTimeout promisified to handle abort signal (#30855)
  • fix(fs): improve file stat checks (#30876)
  • fix(fs): improve file utime checks (#30872)
  • fix(npm): do not error when packument version contains both bundleDependencies and bundledDependencies (#30875)
  • fix(unstable/tunnel): rename --connected to --tunnel and better handle DENO_DEPLOY_TOKEN env variable (#30786)
  • fix: add support for passing v8 flags on deno check (#30868)
  • fix: do not purge lockfile when linking and the linked package's reqs have not changed (#30877)
  • fix: show --permission-set help only once (#30844)

v2.2.15

01 Oct 13:59
5f6b132

Choose a tag to compare

2.2.15 LTS / 2025.09.30

  • fix: reject running .bat and .cmd directly on windows (#30818)
  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix(fs): improve file stat checks (#30876)
  • fix(fs): improve file utime checks (#30872)

v2.1.14

29 Sep 23:11
b8ae132

Choose a tag to compare

2.1.14 / 2025.05.13

  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix: reject running .bat and .cmd directly on windows (#30818)

v2.5.2

24 Sep 22:21
0278715

Choose a tag to compare

2.5.2 / 2025.09.24

  • feat(lsp): describe/it test editor support (#30802)
  • fix(bundle): reload html entrypoints with --watch (#30790)
  • fix(check): support "compilerOptions.paths" (#30766)
  • fix(cli/bundle): respect --frozen flag deno bundle command (#30825)
  • fix(coverage): collect coverage data for workers (#30807)
  • fix(dts): add Uint8Array base64/hex methods (#30686)
  • fix(dts): update stream type declarations to use Promise<void> (#30820)
  • fix(ext/node): fs.readFile, fs.readFileSync assert encoding (#30830)
  • fix(ext/node): fs.statfsSync and fs.statfs compatibility (#30662)
  • fix(ext/node): accept ArrayBuffer on crypto.timingSafeEqual (#30773)
  • fix(ext/node): crypto Cipheriv and Decipheriv base64 encoding (#30806)
  • fix(ext/ws): send User-Agent header in WS handshake (#30758)
  • fix(fetch): handle proxied urls correctly and add test (#30794)
  • fix(lint): skip module graph validation (#30815)
  • fix(tunnel): make auth more robust (#30731)
  • fix: add top level permissions key to config file schema (#30765)
  • fix: reject running .bat and .cmd directly on windows (#30818)
  • fix: restore Windows debug info (#30778)
  • perf(lsp): don't watch node_modules files (#30768)
  • perf: stack allocated v8 scopes (#30827)
  • perf: support negative caching of package.json (#30792)

v2.5.1

17 Sep 07:22
4c1cdfc

Choose a tag to compare

2.5.1 / 2025.09.16

  • feat(unstable): support Deno.HttpClient in WebSocket (#30692)
  • feat(unstable): tcp proxy for Deno.HttpClient (#30700)
  • fix(bundle): set the type of the outputFile in the deno bundle to Uint8Array<ArrayBuffer> (#30716)
  • fix(check): filter resolution errors for bare ambient modules (#30690)
  • fix(ext/fetch): mark unix and vsock proxy conns as proxy (#30699)
  • fix(ext/node): handle falsy values enumerability in process.env (#30708)
  • fix(ext/node): implement fchmod on windows (#30704)
  • fix(ext/node): make fs.glob accepts URL cwd (#30705)
  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix(ext/node): validate fs.read on empty buffer (#30706)
  • fix(ext/node): validate readlink arguments (#30691)
  • fix(ffi): check that fast calls are taken (#30658)
  • fix(http): duplicate listener should inherit onError and signal (#30680)
  • fix(init): regression where deno init --npm stopped working on mac (#30730)
  • fix(lsp): don't write lockfile during cache-on-save (#30733)
  • fix(node): reduce chance of module not found error due to missing copy package (#30744)
  • fix(permissions): point to correct config file in error message in workspace containing permissions at root (#30742)
  • fix: Add info/hint for unstable Deno.bundle API (#30682)